2017-06-06 25 views
0

私はUnity 5.5.2fとNGUI 3.9.4を使用しています。NGUIのグリッドを活用してアイテムを自動表示して完全な表示にしたいと思います。ユニティはNGUIグリッドに動的に内容を追加します

手動で階層にアイテムを追加すると正常に動作しますが、スクリプトを使用してアイテムを追加すると、グリッドはアイテムを配置しません。

レベルボードにアイテムを追加するためのコードです。 enter image description here

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

[OK]を、私は見つけるトリック、インスタンス化ラップ項目の後、グリッド・システムへのIべきAddChild()

if(i%4 == 0) 
{     
    currentWrap = Instantiate(levelWrap,transform,false); 
    GetComponent<UIGrid>().AddChild(currentWrap.transform); 
} 
関連する問題