taurus2790
@taurus2790
Я не программер я только учусъ

Как получить дочерний объект?

Уважаемые подскажите есть объект в нём дочерние объекты.

К основному объекту прикреплён скрипт в котором нужно работать с дочерним объектом, но как к нему обратиться?

У меня сделано вот так, но я уверен что это бред. Если у меня будет 900 зданий и каждому придётся проставлять спаун точку.

Я сделал ещё вот так .Find("SpawnPoint").transform но везде пишут что Find использовать не лучшее решение.

5adc8f3c2b012873669944.png
  • Вопрос задан
  • 7256 просмотров
Решения вопроса 1
kreo_OL
@kreo_OL
Медузко -_-
Любые операции поиска сжирают ресурсы, поэтому - да, использовать их не очень хорошо.
Однако для этого можно использовать кеширование.
То есть вы один раз находите нужный объект, сохраняете ссылку на него в переменную и далее используете переменную.
В вашем же случае, например если у вас есть 10 спавн точек, в которые вы рандомно будете спавнить, то можно эти точки поместить в один родительский объект контейнер, и в основной скрипт ручками поместить этот контейнер в переменную, а в самом скрипте в стартовом методе написать следующее:
Transform[] spawnPoints = _containerSpawnPoint.GetComponentsInChildren<Transform>();

В итоге вы получите трансформы всех дочерних объектов контейнера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Если вы делаете это одни раз на старте и запоминаете ссылку то нормально. Один только минус, если вдруг переименуете. Если же у вас будет овер9000 точек, то вешайте на каждый компонент, а в родителе соберёте все дочерние компоненты этого типа, и далее будете использовать этот массив.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы