切换牌组封面
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user