using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
///
/// 星星组件类型2
/// 空心星星
///
public class UI_HeroStarComponment2 : MonoBehaviour
{
///
/// 模型
///
private GameObject mPrefab = null;
///
/// 总数码
///
private int _totalNum = -1;
///
/// 当前激活数目
///
private int _curNum = -1;
///
/// 总数
///
public int totalNum
{
get
{
return _totalNum;
}
set
{
if (_totalNum != value)
{
_totalNum = value;
onTotalNumChanged();
}
}
}
///
/// 当前数
///
public int curNum
{
get
{
return _curNum;
}
set
{
if (_curNum != value)
{
_curNum = value;
onTotalNumChanged();
}
}
}
///
/// 节点列表
///
private List elements = new List();
///
/// 显示星星啦啦啦
///
private void onTotalNumChanged()
{
if (mPrefab == null)
{
mPrefab = this.transform.Find("prefab").gameObject;
mPrefab.GetComponent().ignoreLayout = true;
mPrefab.SetActive(false);
}
elements.Clear();
for (int i = 0; i < this.transform.childCount; i++)
{
GameObject temp = this.transform.GetChild(i).gameObject;
if (temp.name == "prefab")
{
continue;
}
else
{
elements.Add(temp);
}
}
if (elements.Count >= totalNum)
{
for (int i = 0; i < elements.Count; i++)
{
GameObject card = elements[i];
if (i < totalNum)
{
////已经有了,重新激活就行了
card.GetComponent().ignoreLayout = false;
card.SetActive(true);
}
else
{
card.GetComponent().ignoreLayout = true;
card.SetActive(false);
}
}
}
else
{
////全部激活
foreach (GameObject card in elements)
{
card.GetComponent().ignoreLayout = false;
card.SetActive(true);
}
for (int i = elements.Count; i < totalNum; i++)
{
////创建新的
GameObject card = (GameObject)Instantiate(mPrefab);
card.name = i.ToString();
card.transform.SetParent(this.transform);
card.transform.localScale = Vector3.one;
card.transform.localPosition = Vector3.zero;
card.GetComponent().ignoreLayout = false;
card.SetActive(true);
elements.Add(card);
}
}
for (int i = 0; i < totalNum; i++)
{
GameObject card = elements[i];
GameObject selected = card.transform.Find("selected").gameObject;
if (i < curNum)
{
selected.SetActive(true);
}
else
{
selected.SetActive(false);
}
}
}
}