using System; using UnityEngine; public class ChallengeTabWin : UIBase { private BaseChallengeTabHandler[] tabHandlers; protected override void InitComponent() { base.InitComponent(); // 自动查找所有子对象上的 Handler 组件 tabHandlers = GetComponentsInChildren(true); } protected override void OnPreOpen() { base.OnPreOpen(); foreach (var handler in tabHandlers) { handler.SubscribeEvents(); } Display(); } protected override void OnPreClose() { base.OnPreClose(); foreach (var handler in tabHandlers) { handler.UnsubscribeEvents(); } UIManager.Instance.GetUI()?.RestoreFuncBtn(); } public void Display() { if (tabHandlers == null) return; foreach (var handler in tabHandlers) { handler.Refresh(); } } }