82 lines
2.4 KiB
C#
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();
|
|
}
|
|
}
|