Страница 1 из 1

Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 15:05
WhiteChemist
У меня есть объект ImageTarget. К нему я подсоединяю объекты (3д модели например). Мне необходимо их получить и закинуть в список. Как их можно получить?

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 15:11
Friend123
Так чтоль?
Синтаксис:
Используется csharp
List<Transform> list = new List<Transform>();

imageTargetObject = GameObject.Find("ImageTarget");
Transform[] childs = imageTargetObject.GetComponentsInChildren<Transform>();

foreach (Transform t in childs)
    list.Add(t);
 

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 15:33
WhiteChemist
Friend123 писал(а):Так чтоль?
Синтаксис:
Используется csharp
List<Transform> list = new List<Transform>();

imageTargetObject = GameObject.Find("ImageTarget");
Transform[] childs = imageTargetObject.GetComponentsInChildren<Transform>();

foreach (Transform t in childs)
    list.Add(t);
 

Да,все спарсилось как надо. Только одну вещь не пойму почему мы делаем перебор через Transform? Это же компонент который отвечает за расположение объектов,поворот их и т.д.?

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 16:06
Friend123
WhiteChemist писал(а):Да,все спарсилось как надо. Только одну вещь не пойму почему мы делаем перебор через Transform? Это же компонент который отвечает за расположение объектов,поворот их и т.д.?

Потому что нам нужно получить компоненты, а компонент Transform есть почти у всех объектов (кроме пустых, в принципе).
Может это не идеальное решение, но рабочее точно.

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 16:11
WhiteChemist
Friend123 писал(а):
WhiteChemist писал(а):Да,все спарсилось как надо. Только одну вещь не пойму почему мы делаем перебор через Transform? Это же компонент который отвечает за расположение объектов,поворот их и т.д.?

Потому что нам нужно получить компоненты, а компонент Transform есть почти у всех объектов (кроме пустых, в принципе).
Может это не идеальное решение, но рабочее точно.

Понял. И чтобы новый топик не создавать еще вопрос: например у меня в папке например models будут храниться модели. Я бы хотел через код их присоединять к тому же ImageTarget, такое можно сделать? Ибо у меня количество объектов будет менятся поэтому надо предусмотреть такую вещь.

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 16:36
Friend123
WhiteChemist писал(а):Я бы хотел через код их присоединять к тому же ImageTarget, такое можно сделать?

Самый простой вариант - использовать Prefabs: https://docs.unity3d.com/Manual/Prefabs.html

P.S. Читайте справку, туториалы, там есть ответы на все подобные простые вопросы.

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 19:20
seaman
кроме пустых

у всех без исключения

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 15 фев 2019, 21:06
Friend123
seaman писал(а):у всех без исключения

Виноват, затупил )) конец рабочей недели

Re: Как получить список подключенных объектов.

СообщениеДобавлено: 22 фев 2019, 01:51
Yaro
WhiteChemist писал(а):Да,все спарсилось как надо. Только одну вещь не пойму почему мы делаем перебор через Transform? Это же компонент который отвечает за расположение объектов,поворот их и т.д.?

Потому что, если GameObjectA прикреплен к GameObjectB, то это значит
Синтаксис:
Используется csharp
GameObjectA.transform.parent = GameObjectB.transform

Поверни GameObjectB, GameObjectA на том же месте не останется, так они и связаны, через transform и только.