using UnityEngine; public class HeroDebutCheckInWin : UIBase { [SerializeField] ImageEx bgImage; [SerializeField] UIHeroController rolelhShow; [SerializeField] TextEx timeText; [SerializeField] ButtonEx closeButton; [SerializeField] HeroDebutCheckInCell[] cells; HeroDebutManager manager => HeroDebutManager.Instance; protected override void InitComponent() { closeButton.SetListener(CloseWindow); } protected override void OnPreOpen() { GeneralActInfoManager.Instance.OnUpdateActSignInfosEvent += OnUpdateActSignInfosEvent; TimeMgr.Instance.OnDayEvent += OnDayEvent; GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; Display(); } protected override void OnPreClose() { GeneralActInfoManager.Instance.OnUpdateActSignInfosEvent -= OnUpdateActSignInfosEvent; TimeMgr.Instance.OnDayEvent -= OnDayEvent; GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; } private void OnDayEvent() { Display(); } private void OnUpdateActSignInfosEvent(int arg1, int arg2) { Display(); } private void OnSecondEvent() { manager.GetActTimeStr(timeText); } private void Display() { int heroID = manager.GetCurrentDisplayCallHeroId(); var artConfig = ActHeroAppearArtConfig.Get(heroID); if (artConfig == null) return; var heroConfig = HeroConfig.Get(heroID); if (heroConfig == null) return; int skinID = manager.GetDefaultSkinID(heroID); var act = manager.GetOperationHeroAppearInfo(); if (act == null) return; var config = ActHeroAppearConfig.Get(act.CfgID); if (config == null) return; int templateID = config.SignTempID; var list = ActSignAwardConfig.GetDayNumSortList(templateID); if (list == null) return; for (int i = 0; i < cells.Length; i++) { if (i < list.Count) { cells[i].SetActive(true); cells[i].Display(templateID, list[i]); } else { cells[i].SetActive(false); } } rolelhShow.Create(skinID, 1, motionName: "", isLh: true); OnSecondEvent(); } }