我正在使用Unity 5.5.2f和NGUI 3.9.4,我希望利用NGUI的Grid来自动整理项目。
当我在层次结构中手动添加项目时,事情会正常工作但是当我通过脚本添加项目时,网格将不会安排我的项目。
void Start () {
List<Level> levels = ApplicationModel.Levels;
GameObject currentWrap = null;
Debug.LogWarning(levels.Count);
for (int i = 0; i < levels.Count; i++)
{
if(i%4 == 0){
currentWrap = Instantiate(levelWrap,transform,false);
}
if (levels[i].IsLock){
GameObject go = Instantiate(levelLocked, currentWrap.transform, false);
go.transform.localPosition = new Vector3(levelXstart + (i % 4) * levelXOffset, 0, 0);
go.transform.GetComponentInChildren<UILabel>().text = i.ToString();
}
else
{
GameObject go = Instantiate(levelActive, currentWrap.transform, false);
go.transform.localPosition = new Vector3(levelXstart + (i % 4) * levelXOffset, 0, 0);
go.transform.GetComponentInChildren<UILabel>().text = i.ToString();
for (int j = 0; j < levels[i].StarGet;j++){
go.transform.Find("fills").GetChild(j).gameObject.SetActive(true);
}
}
}
}
答案 0 :(得分:0)
好的,我发现了这个技巧,在实例化包装项之后,我应该AddChild()
到网格系统。
if(i%4 == 0)
{
currentWrap = Instantiate(levelWrap,transform,false);
GetComponent<UIGrid>().AddChild(currentWrap.transform);
}