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

Общие вопросы о Unity3D

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

Сообщение WhiteChemist 15 фев 2019, 15:05

У меня есть объект ImageTarget. К нему я подсоединяю объекты (3д модели например). Мне необходимо их получить и закинуть в список. Как их можно получить?
WhiteChemist
UNец
 
Сообщения: 37
Зарегистрирован: 12 фев 2019, 21:31

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

Сообщение Friend123 15 фев 2019, 15:11

Так чтоль?
Синтаксис:
Используется csharp
List<Transform> list = new List<Transform>();

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

foreach (Transform t in childs)
    list.Add(t);
 
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

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

Сообщение WhiteChemist 15 фев 2019, 15:33

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? Это же компонент который отвечает за расположение объектов,поворот их и т.д.?
WhiteChemist
UNец
 
Сообщения: 37
Зарегистрирован: 12 фев 2019, 21:31

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

Сообщение Friend123 15 фев 2019, 16:06

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

Потому что нам нужно получить компоненты, а компонент Transform есть почти у всех объектов (кроме пустых, в принципе).
Может это не идеальное решение, но рабочее точно.
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

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

Сообщение WhiteChemist 15 фев 2019, 16:11

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

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

Понял. И чтобы новый топик не создавать еще вопрос: например у меня в папке например models будут храниться модели. Я бы хотел через код их присоединять к тому же ImageTarget, такое можно сделать? Ибо у меня количество объектов будет менятся поэтому надо предусмотреть такую вещь.
WhiteChemist
UNец
 
Сообщения: 37
Зарегистрирован: 12 фев 2019, 21:31

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

Сообщение Friend123 15 фев 2019, 16:36

WhiteChemist писал(а):Я бы хотел через код их присоединять к тому же ImageTarget, такое можно сделать?

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

P.S. Читайте справку, туториалы, там есть ответы на все подобные простые вопросы.
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

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

Сообщение seaman 15 фев 2019, 19:20

кроме пустых

у всех без исключения
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение Friend123 15 фев 2019, 21:06

seaman писал(а):у всех без исключения

Виноват, затупил )) конец рабочей недели
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

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

Сообщение Yaro 22 фев 2019, 01:51

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

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

Поверни GameObjectB, GameObjectA на том же месте не останется, так они и связаны, через transform и только.
Yaro
UNIт
 
Сообщения: 86
Зарегистрирован: 20 сен 2016, 21:44


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11