Генерация GameObjects и установка их изображения из массива текстур при нажатии кнопки - Unity 4.6 (с помощью uGUI)
У меня много проблем, когда я пытаюсь разработать загрузчик, который, когда нажимается кнопка, берет массив текстур и заполняет их в сетку (а когда нажимается другая кнопка, он удаляет текущие текстуры и заменяет их новой. массив текстур). У меня есть часть макета сетки пользовательского интерфейса, и массивы текстур сгенерированы, мне просто нужна помощь с:
- Назначение каждой текстуры компоненту Image индивидуально сгенерированных объектов GameObject.
- Заполнение макета сетки с этими GameObjects.
Может ли кто-нибудь поделиться какой-нибудь информацией о коде или фрагментом кода, который может помочь?
1 ответ
Сначала создайте скрипт внутри вашего Canvas
или создать пустой GameObject
со сценарием.
Создать общедоступные переменные:
public Sprite[] mySprites;
public GameObject myGridLayoutGameObject;
public GameObject myGridElement;
В mySprites
назначьте все свои спрайты через редактор.
За myGridLayoutGameObject
назначьте свой графический интерфейс GameObject с помощью GridLayoutGroup
,
За myGridElement
Вы должны создать прототип GUI-объекта с помощью Image и поместить его за пределы холста, чтобы он не был виден вашей камере. Присвойте его вашей переменной scripts.
Затем вы можете создать некоторый метод:
public void fillGrid() {
foreach (Sprite sprite in mySprites) {
GameObject instance = Instantiate(myGridElement, myGridElement.transform.position, myGridElement.transform.rotation) as GameObject;
instance.GetComponent<Image>().sprite = sprite;
instance.transform.SetParent(myGridLayoutGameObject.transform);
}
}
Он автоматически поместит все ваши объекты в сетку, в зависимости от ваших настроек. Не забудьте добавить с помощью UnityEngine.UI; на голове вашего сценария.
Кроме того, я написал этот код для Unity 5. Unity 4.6 может иметь некоторые различия в элементах GUI.