using UnityEngine; namespace GeometryTD.UI { public class CombatSelectFuncArea : MonoBehaviour { [SerializeField] private TowerSelectItem _upgradeItem; [SerializeField] private TowerSelectItem _destroyItem; public void OnInit(TowerSelectItemContext upgradeItemContext, TowerSelectItemContext destroyItemContext) { RefreshItem(_upgradeItem, upgradeItemContext); RefreshItem(_destroyItem, destroyItemContext); } public void OnReset() { ResetItem(_upgradeItem); ResetItem(_destroyItem); } private static void RefreshItem(TowerSelectItem item, TowerSelectItemContext context) { if (item == null) { return; } bool isVisible = context != null && context.IsVisible; item.gameObject.SetActive(isVisible); if (isVisible) { item.OnInit(context); } else { item.OnReset(); } } private static void ResetItem(TowerSelectItem item) { if (item == null) { return; } item.OnReset(); item.gameObject.SetActive(false); } } }