Unity динамически добавляет контент в сетку NGUI

Я использую 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);
                }

            }
        }

    }

1 ответ

Хорошо, я нахожу хитрость, после того как я создаю объект AddChild() к сетке.

 if(i%4 == 0)
 {                  
   currentWrap = Instantiate(levelWrap,transform,false);
   GetComponent<UIGrid>().AddChild(currentWrap.transform);   
 }
Другие вопросы по тегам