Найти дочерний объект [РЕШЕНО]

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Найти дочерний объект [РЕШЕНО]

Сообщение Wainakh58 03 авг 2014, 12:28

Добрый день форумчане.
Есть такая проблема: существует префаб моба bot11 у него есть дочерние объекты bot1 - модель бота и target - цель, куда он идет.
При клике мышки на нем - происходит выделение бота (это работает). А вот получить таргет я не могу.
Так как это префаб бота. То все боты и таргеты имеют одинаковые имена.
Пользуясь командой GameObject.Find - находится первый таргет в инспекторе. А мне надо найти именно таргет дочерний выбранному боту.
Последний раз редактировалось Wainakh58 03 авг 2014, 13:59, всего редактировалось 1 раз.
Wainakh58
UNец
 
Сообщения: 4
Зарегистрирован: 03 авг 2014, 12:22

Re: Найти дочерний объект

Сообщение Левш@ 03 авг 2014, 12:42

Все способы поиска: http://docs.unity3d.com/ScriptReference ... tml?q=find

PS. Для кого мануал писали.... :-?
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Найти дочерний объект

Сообщение Wainakh58 03 авг 2014, 12:57

Отлично, умник, и где ты видишь решение моей проблемы?
Поиск по тэгу, по коллайдеру, по имени и даже по имени через (/../) я знаю. А то, что мне поможет я не вижу.
Wainakh58
UNец
 
Сообщения: 4
Зарегистрирован: 03 авг 2014, 12:22

Re: Найти дочерний объект

Сообщение TxN 03 авг 2014, 13:18

Wainakh58 писал(а):Отлично, умник, и где ты видишь решение моей проблемы?
Поиск по тэгу, по коллайдеру, по имени и даже по имени через (/../) я знаю. А то, что мне поможет я не вижу.


Зачем так агриться? Очень невежливо ваще-т.
По проблеме:
Если ты уже знаешь объект бота, то найти дочерний объект проблем нет никаких. Используешь конструкцию типа:

Синтаксис:
Используется csharp
SelectedBot.transform.Find("Marker");

И он находит дочерний объект у этого бота.
И кстати, это гуглится за минуту и есть в хелпе.
Последний раз редактировалось TxN 03 авг 2014, 13:21, всего редактировалось 1 раз.
TxN
UNец
 
Сообщения: 37
Зарегистрирован: 25 июл 2014, 14:13

Re: Найти дочерний объект

Сообщение Левш@ 03 авг 2014, 13:20

мне надо найти именно таргет дочерний

Transform.Find - вторая ссылка сверху - ищет только дочерние обьекты...
Finds a child by name and returns it.

я не вижу

Очки купи. (popcorn1)
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Найти дочерний объект

Сообщение Wainakh58 03 авг 2014, 13:47

Извиняюсь за вспыльчивость. Просто долго не могу решить эту проблему, пролазил кучу форумов и такого не нашел.
Ага. Я вспомнил почему это не работает в моем случае.
bot11
-bot1(модель)
-target

Вот как выглядит префаб. в скрипт передается объект, на колайдер которого натыкается райкаст от камеры. Коллайдер висит на самом верхнем объекте. С transform.find я получаю нужный таргет. Но проблема новая - модель бота двигается, а коллайдер остается на месте, и заново выделить этого бота не возможно.
Решения я вижу следующее :
Коллайдер мы вешаем на модель бота.
В скрипте мы получаем модель бота.
Но таргет теперь НЕ дочерний объект.

Как быть? По факту : Надо найти дочерний объект родительского объекта по отношению к выделенному объекту

CureUnit = hit.collider.gameObject;
Parrent = CureUnit.transform.parent;
target = Parrent.transform.Find("Target");
Не фурычит... Есть идеи?
Wainakh58
UNец
 
Сообщения: 4
Зарегистрирован: 03 авг 2014, 12:22

Re: Найти дочерний объект

Сообщение Wainakh58 03 авг 2014, 13:58

Всем спасибо :) Решение найдено и до ужаса простое :)

CureUnit = hit.collider.gameObject;
Parrent = CureUnit.transform.parent.gameObject;
target = Parrent.transform.Find("Target");

Надо было паррен объявлять как объект.. вот я затупок :)
Wainakh58
UNец
 
Сообщения: 4
Зарегистрирован: 03 авг 2014, 12:22


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Google [Bot] и гости: 20