Не работает GetComponentInChildren и создаются неправильно дубликаты объекта
Мне нужно чтобы в магазине создавались объекты сами при помощи скрипта с List, где уже указаны про них данные.
Но возникли проблемы:
1) У меня есть кнопка, у которой дочерний объект (по умолчанию Text у кнопок, я поменял на Image) - Image с компонентом Image.
Но вместо того, чтобы его изменять (button.GetComponentInChildren<Image>().sprite = list.item_image;), он изменяет компонент Image в самом объекте Button, а не в дочернем. Интересно, что если написать просто GetComponent<...>..., то свои действие не меняет и делает точно также, как и с InChildren.
2) Исходная модель, которая находится в файлах проекта, но не на сцене (шаблон) - objectButton меняется, хотя я сделал дубликат button и менял его, а не objectButton.
Т.е. как выше писал, он меняет Image в button и в шаблоне objectButton (где не должен менять),
хотя я писал button.GetComponentInChildren<Image>().sprite = list.item_image; - т.е. задал дубликату button, а не исходнику в файлах игры
foreach (var list in List_of_things)
{
//Дубликат
RectTransform button = new RectTransform();
//Задаём дубликату исходную модель
button = objectButton;
//Изменяем дубликат
button.GetComponentInChildren<Image>().sprite = list.item_image;
//Создаём дубликат
Instantiate(button, UI_content);
}
Заранее спасибо
Ответы (1 шт):
Мой ответ (сам нашёл решения): 1) Мне нужно всего лишь было получить дочерний объект и задать уже его Image
GameObject image = clone.gameObject.transform.GetChild(0).gameObject;
image.GetComponent<Image>().sprite = list.item_image;
2) Спасибо RiotBr3aker, что дал понять, что я делаю ссылку. Исправил следующим образом
GameObject clone = Instantiate(objectButton, UI_content);
Всем спасибо, вопрос решён
