2014-09-10 3 views
11

Я хочу сказать нечто вроде ..Как я могу найти дочерний игровой объект?

Gameobject.find(child gameobject of specific parent Gameobject) 

Может кто-нибудь мне помочь. спасибо!

+0

Посмотрите на это http://answers.unity3d.com/questions/10417/how-can-i-access-the -children-of-a-transform.html – Imapler

+0

[Есть функция поиска по преобразованию] (http://docs.unity3d.com/ScriptReference/Transform.Find.html) –

ответ

22

GameObject.Find будет искать объект игры в сцене. Чтобы выполнить поиск объекта игры у родителя, используйте Transform.

Есть 2 способа сделать это:

  1. transform.Find("childname")
  2. transform.FindChild("childname")

2-й вариант является устаревшим, но все функциональные, так что лучше использовать 1-ый вариант.

+2

, когда я пытаюсь использовать этот код.i нашел одну ошибку, например ... «Невозможно преобразовать тип UnityEngine.Transform в' UnityEngine.GameObject » – 2014-09-10 11:42:41

+3

, потому что' Transform.find («childname») 'возвращает тип Transform. Если вы хотите получить игровой объект, просто добавьте .gameObject в конец: 'Transform.find (« childname »). GameObject' –

+0

Я внес изменения user3164248 в этот ответ (просто чтобы избежать путаницы). –

2

Фиксация ответа Джэй Казама. Правильные ответы:

  1. transform.Find ("ChildName")
  2. transform.FindChild ("ChildName")

С малых т (свойство преобразования, а не класс Transform).

+1

Я изменил ответ Kazama, чтобы включить эти исправления. –

0

Если GameObject вы ищете в иерархии он должен быть как:

transform.Find("head/eyes") 
transform.FindChild("head/eyes") 
Смежные вопросы