切换牌组封面

This commit is contained in:
YiHan0621
2025-10-13 18:30:07 +08:00
parent f14b8d6ac6
commit e84768d8fb
8 changed files with 230 additions and 35 deletions

View File

@@ -11,6 +11,13 @@ namespace TcgEngine.UI
public Transform content;
public GameObject coverPrefab;
// 防止重复点击
public Image clickBlocker;
public UserDeckData udeck;
private List<ChangeCoverLine> lineList = new List<ChangeCoverLine>();
private bool isInit = false;
private static ChangeCoverPanel instance;
@@ -25,7 +32,6 @@ namespace TcgEngine.UI
protected override void Start()
{
base.Start();
GenerateCardCovers();
}
/// <summary>
@@ -39,25 +45,52 @@ namespace TcgEngine.UI
GameObject cardCover = Instantiate(coverPrefab, content);
var line = cardCover.GetComponent<ChangeCoverLine>();
line.SetCover(cover.GetCardCover(), cover.name);
line.OnChangeCover += SaveCardCover;
lineList.Add(line);
}
isInit = true;
}
private void RefreshPanel()
{
// dsdd
int ss = 0;
foreach (var line in lineList)
{
line.RefreshCurrentCover(udeck.cover);
}
}
public void OpenPanel(DeckLine line)
{
if (!isInit)
{
GenerateCardCovers();
}
Show();
udeck = line.GetUserDeck();
coverNameText.text = udeck.title;
RefreshPanel();
coverNameText.text = line.title.text;
}
public void SaveCardCover(ChangeCoverLine line)
{
UserData udata = Authenticator.Get().UserData;
udeck.cover = line.coverName;
clickBlocker.gameObject.SetActive(true);
// ✅ 立即刷新当前 UI
RefreshPanel(); // 封面变黄
CollectionPanel.Get().RefreshCover(line.cover); // 卡组封面即时更新
CollectionPanel.Get().SaveDeckAPI(udata, udeck);
Hide();
}
public override void Show(bool instant = false)
{
base.Show(instant);
clickBlocker.gameObject.SetActive(false);
}
public static ChangeCoverPanel Get()