Как найти объект по названию?

Программирование на Юнити.

Как найти объект по названию?

Сообщение ruswizz 25 дек 2014, 17:50

Мне нужно чтобы Transform target стал равен Transform с именем leftTarget, но известно, что этот leftTarget находится в Transform army, сам leftTarget находится глубоко в иерархии.Как можно такое реализовать? Но чтобы динамически обновляло target, т.к. leftTarget меняется.
ruswizz
UNITрон
 
Сообщения: 195
Зарегистрирован: 11 май 2013, 12:32

Re: Как найти объект по названию?

Сообщение Левш@ 25 дек 2014, 21:19

Как можно такое реализовать?


Синтаксис:
Используется csharp
Transform target;

void Update () {
        GameObject obj = GameObject.Find("leftTarget") as GameObject;
        target = obj.transform;
}
 
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как найти объект по названию?

Сообщение OlegNick 26 дек 2014, 00:57

ruswizz писал(а): т.к. leftTarget меняется.


В смысле меняется, то жиреет то худеет? если меняется Object.name вашего target то :
Синтаксис:
Используется csharp

    public Transform army;
    public Transform target;

    void Update()
    {
        if (!target || target.name != "leftTarget")
            target = army.Find("leftTarget");
    }
Усложнять - просто, упрощать - сложно.
OlegNick
Старожил
 
Сообщения: 585
Зарегистрирован: 10 ноя 2013, 02:21
Откуда: Россия, Калуга

Re: Как найти объект по названию?

Сообщение ruswizz 26 дек 2014, 04:40

Левш@, Olegnick спасибо. Но разве таким способом не будет фпс падать? Через GameObject.FindWithTag будет лучше?
ruswizz
UNITрон
 
Сообщения: 195
Зарегистрирован: 11 май 2013, 12:32

Re: Как найти объект по названию?

Сообщение ruswizz 26 дек 2014, 04:42

OlegNick писал(а):
ruswizz писал(а): т.к. leftTarget меняется.


В смысле меняется, то жиреет то худеет? если меняется Object.name вашего target то :
Синтаксис:
Используется csharp

    public Transform army;
    public Transform target;

    void Update()
    {
        if (!target || target.name != "leftTarget")
            target = army.Find("leftTarget");
    }

Хотя у вас правильно реализовано. Спасибо еще раз.
ruswizz
UNITрон
 
Сообщения: 195
Зарегистрирован: 11 май 2013, 12:32

Re: Как найти объект по названию?

Сообщение ruswizz 28 дек 2014, 10:09

Левш@ писал(а):
Как можно такое реализовать?


Синтаксис:
Используется csharp
Transform target;

void Update () {
        GameObject obj = GameObject.Find("leftTarget") as GameObject;
        target = obj.transform;
}
 


Реализовал как у вас, думал все отлично, но оказывается ищет во всей сцене. Писал вот так:
Синтаксис:
Используется csharp
GameObject obj = army.Find("L_Grip") as GameObject;
Не хочет искать именно в army. В чем проблема?
ruswizz
UNITрон
 
Сообщения: 195
Зарегистрирован: 11 май 2013, 12:32


Вернуться в Скрипты

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

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