Find не спускается по иерархии Transform.Функция поиска будет выполнять поиск по заданному списку детей, ищущих именованное преобразование, только если дочерние элементы не найдены, возвращается ноль .Другими словами, он не будет смотреться на детях своих детей.Если вы хотите использовать Find
на дочернем объекте, который уже является дочерним, то вы должны получить к нему доступ как путь, используя /
, например.transform.Find("Body/Head")
.
В общем, ссылка на строку, подобная этой, - очень плохая идея. Один из способов сделать это - создать пустой скрипт (скажем, Head.cs) и прикрепить его к дочернему элементу родителя.Затем GameObject вместо поиска преобразования по строковой ссылке вы можете искать компонент Head.cs
Это будет выглядеть примерно так:
private void OnTriggerEnter(Collider collider)
{
//Where Head is an empty script attached to the Head.
var head = collider.GetComponentInChildren<Head>();
//Do something... Logging the name for example
Debug.log(head.transfrom.name);
}