geometry-tower-defense-base/src-ref/UI/Combat/View/CombatSelectFuncArea.cs

54 lines
1.3 KiB
C#

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);
}
}
}