Files
2024-08-23 15:49:34 +08:00

82 lines
2.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChildSkillLearnItemPanel : MonoBehaviour {
public static ChildSkillLearnItemPanel Instance;
private void Awake()
{
Instance = this;
}
private void OnDestroy()
{
Instance = null;
}
public GameObject _ItemPrefab;
public Transform _Parent;
//当前已经存在的item
private List<ChildSkillCommonItem> _ContainerItemPrefabList = new List<ChildSkillCommonItem>();
public delegate void _InitItemFinishCallBack();
public void InitItemPanel(List<int> list)
{
StartCoroutine(CreateItemPrefab(list, () =>
{
for (int index = 0; index < list.Count; index++)
_ContainerItemPrefabList[index].InitItemInfo(list[index]);
}));
}
IEnumerator CreateItemPrefab(List<int> list, _InitItemFinishCallBack callBack)
{
yield return null;
if(_ContainerItemPrefabList.Count > list.Count)
{
for (int index = 0; index < list.Count; index++)
_ContainerItemPrefabList[index].gameObject.SetActive(true);
for (int index = list.Count; index < _ContainerItemPrefabList.Count; index++)
_ContainerItemPrefabList[index].gameObject.SetActive(false);
}else
{
var lackCount = list.Count - _ContainerItemPrefabList.Count;
for (int index = 0; index < lackCount; index++)
{
var obj = Instantiate(_ItemPrefab);
obj.transform.SetParent(_Parent);
obj.transform.localRotation = Quaternion.Euler(Vector3.zero);
obj.transform.localScale = Vector3.one;
var scriptComponent = obj.GetComponent<ChildSkillCommonItem>();
_ContainerItemPrefabList.Add(scriptComponent);
}
}
callBack.Invoke();
yield break;
}
public void OnMask()
{
UIManager.CloseUI(UIInfo.ChildSkillLearnItemPanel);
}
public void RefreshItemCount()
{
//_ItemContainer.ForeachActiveItem<ChildSkillCommonItem>((item) => {
// item.RefreshItemCount();
//});
for(int index = 0; index < _ContainerItemPrefabList.Count; index++)
{
_ContainerItemPrefabList[index].RefreshItemCount();
}
}
private void OnDisable()
{
_ContainerItemPrefabList.Clear();
}
}