94 lines
2.8 KiB
C#
94 lines
2.8 KiB
C#
using GCGame.Table;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class FashionAttrBase : MonoBehaviour {
|
|
|
|
private struct AttrItemStruct
|
|
{
|
|
public int _PropId;
|
|
public int _PropVal;
|
|
public AttrItemStruct(int propId, int val)
|
|
{
|
|
_PropId = propId;
|
|
_PropVal = val;
|
|
}
|
|
}
|
|
|
|
public static FashionAttrBase Instance;
|
|
private void Awake()
|
|
{
|
|
Instance = this;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
Instance = null;
|
|
}
|
|
|
|
public GameObject _AttrItemPrefab;
|
|
public Transform _AttrItemParent;
|
|
private List<FashionAttrItemBase> _AttrItemList = new List<FashionAttrItemBase>();
|
|
private Tab_ChildrenFashion _ChildFashionTab = null;
|
|
public Text _CombatVal;
|
|
public Transform _Parent;
|
|
public void InitAttrPanel(int fashionId)
|
|
{
|
|
_ChildFashionTab = TableManager.GetChildrenFashionByID(fashionId, 0);
|
|
if (_ChildFashionTab == null)
|
|
{
|
|
Debug.LogError("childrenFashionTab is null : " + fashionId);
|
|
return;
|
|
}
|
|
|
|
//战力
|
|
_CombatVal.text = _ChildFashionTab.CombatVal + "";
|
|
|
|
//属性词条
|
|
if (gameObject.activeInHierarchy)
|
|
StartCoroutine(CreateAndInitAttrItem());
|
|
}
|
|
Dictionary<int, int> _PropValDic;
|
|
IEnumerator CreateAndInitAttrItem()
|
|
{
|
|
yield return null;
|
|
|
|
_PropValDic = new Dictionary<int, int>();
|
|
for(int index = 0; index < _ChildFashionTab.getPropIdCount(); index++)
|
|
{
|
|
if(_ChildFashionTab.GetPropIdbyIndex(index) != -1)
|
|
_PropValDic.Add(_ChildFashionTab.GetPropIdbyIndex(index), _ChildFashionTab.GetPropValbyIndex(index));
|
|
}
|
|
var lessCount = 0;
|
|
if (_AttrItemList == null)
|
|
lessCount = _PropValDic.Count;
|
|
else
|
|
lessCount = _PropValDic.Count - _AttrItemList.Count;
|
|
|
|
for (int index = 0; index < lessCount; index++)
|
|
{
|
|
var attrItem = GameObject.Instantiate(_AttrItemPrefab);
|
|
attrItem.transform.SetParent(_Parent);
|
|
attrItem.transform.localPosition = Vector3.zero;
|
|
attrItem.transform.localScale = Vector3.one;
|
|
attrItem.transform.localRotation = Quaternion.Euler(Vector3.zero);
|
|
var attrComponent = attrItem.GetComponent<FashionAttrItemBase>();
|
|
_AttrItemList.Add(attrComponent);
|
|
|
|
attrItem.gameObject.SetActive(false);
|
|
}
|
|
var itemIndex = 0;
|
|
foreach (var item in _PropValDic)
|
|
{
|
|
_AttrItemList[itemIndex++].InitAttrItem(item.Key, item.Value);
|
|
}
|
|
for(int index = _PropValDic.Count; index < _AttrItemList.Count; index++)
|
|
{
|
|
_AttrItemList[index].gameObject.SetActive(false);
|
|
}
|
|
yield break;
|
|
}
|
|
}
|