thewar_client/Client/Assets/1_Script/UnitSetUiCtrl.cs

107 lines
2.9 KiB
C#

using System.Collections.Generic;
using UnityEngine;
public class UnitSetUiCtrl : MonoBehaviour
{
[SerializeField] GameObject itemPrefab;
[SerializeField] Transform itemContent;
[SerializeField] GameObject unitPrefab;
[SerializeField] Transform unitContent;
[SerializeField] GameObject objInfo;
[SerializeField] GameObject objItemView;
[SerializeField] GameObject objEquipment;
[SerializeField] GameObject objDeck;
GameObjectPool<ItemPrefab> itemPrefabList;
GameObjectPool<UnitPrefab> unitPrefabList;
List<ItemPrefab> onItemPrefabList;
List<UnitPrefab> onUnitPrefabList;
private void Awake()
{
onItemPrefabList = new List<ItemPrefab>();
onUnitPrefabList = new List<UnitPrefab>();
itemPrefabList = new GameObjectPool<ItemPrefab>(5, () =>
{
var obj = Instantiate(itemPrefab, itemContent);
obj.SetActive(false);
var clone = obj.GetComponent<ItemPrefab>();
return clone;
});
unitPrefabList = new GameObjectPool<UnitPrefab>(5, () =>
{
var obj = Instantiate(unitPrefab, unitContent);
obj.SetActive(false);
var clone = obj.GetComponent<UnitPrefab>();
return clone;
});
}
private void OnEnable()
{
ButtonStatus();
onItemPrefabList.Clear();
foreach (var item in Statics.equipment)
{
ItemPrefab prefab = itemPrefabList.pop();
prefab.SetData(item);
prefab.gameObject.SetActive(true);
onItemPrefabList.Add(prefab);
}
foreach (var item in Statics.deckUnit)
{
UnitPrefab prefab = unitPrefabList.pop();
prefab.SetData(item.Value);
prefab.gameObject.SetActive(true);
onUnitPrefabList.Add(prefab);
}
}
private void OnDisable()
{
foreach (var item in onItemPrefabList)
{
item.gameObject.SetActive(false);
itemPrefabList.push(item);
}
foreach (var item in onUnitPrefabList)
{
item.gameObject.SetActive(false);
unitPrefabList.push(item);
}
}
public void ButtonStatus()
{
objInfo.SetActive(true);
objItemView.SetActive(false);
objEquipment.SetActive(false);
objDeck.SetActive(false);
}
public void ButtonEquipment()
{
objInfo.SetActive(false);
objItemView.SetActive(true);
objEquipment.SetActive(true);
objDeck.SetActive(false);
}
public void ButtonDeck()
{
objInfo.SetActive(false);
objItemView.SetActive(false);
objEquipment.SetActive(false);
objDeck.SetActive(true);
}
public void ButtoncHaracteristic()
{
objInfo.SetActive(false);
objItemView.SetActive(false);
objEquipment.SetActive(false);
objDeck.SetActive(false);
}
}