active=false а как-же true ?

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

Re: active=false а как-же true ?

Сообщение meshlen 21 июл 2010, 19:06

Я так понял что "албанские" вопросы задают в этой теме.
У меня как раз такой вопрос и в русле темы.
Не получается загнать в массив дочерние геймобъекты.
Подскажите в чем проблема. Прокурил help. Но тамошний пример не помог.
Пробовал разные написания, но всегда ошибка выходит.

вот скриптик:
var T:GameObject[]; //массив объектов
var T1:GameObject; //объект с дочерними геймобъектами

function Awake()
{
T1 = GameObject.Find("Floor1"); // присвоение значения переменной
T = gameObject.GetComponentsInChildren< >(); // здесь, по-идеи, должно быть заполнение массива дочерними объектами. Но с этой строчкой проблемы. С синтаксисом проблемы. ошибки.
}

напишите как должна правильно писаться эта строчка на данном примере. Заранее спасибо!
meshlen
UNец
 
Сообщения: 10
Зарегистрирован: 21 июл 2010, 18:42

Re: active=false а как-же true ?

Сообщение Zaicheg 21 июл 2010, 19:11

Тип компонента укажи. Transform, например, — он у всех геймобъектов есть.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: active=false а как-же true ?

Сообщение meshlen 21 июл 2010, 19:31

Я понимаю... Если знаешь как правильно...напиши. Пробовал по всякому.
где здесь надо объект указать? как строчка будет верно выглядеть?
T = gameObject.GetComponentsInChildren< >();
meshlen
UNец
 
Сообщения: 10
Зарегистрирован: 21 июл 2010, 18:42

Re: active=false а как-же true ?

Сообщение Zaicheg 21 июл 2010, 19:49

В примере в справке указан тип. И для UnityScript и для C#. Указывай так же.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: active=false а как-же true ?

Сообщение meshlen 21 июл 2010, 20:09

T = gameObject.GetComponentsInChildren<Transform>();

в итоге:
Assets/script/test.js(7,43): BCE0044: expecting an identifier, found ')'.
Assets/script/test.js(7,44): BCE0044: expecting ), found ';'.
Assets/script/test.js(7,45): UCE0001: ';' expected. Insert a semicolon at the end.
meshlen
UNец
 
Сообщения: 10
Зарегистрирован: 21 июл 2010, 18:42

Re: active=false а как-же true ?

Сообщение Zaicheg 21 июл 2010, 20:26

meshlen писал(а):T = gameObject.GetComponentsInChildren<Transform>();

Да, именно так.

Ошибки — где-то пропустил скобочку или точку с запятой в другом месте.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: active=false а как-же true ?

Сообщение meshlen 21 июл 2010, 20:36

Вот весь скрипт. Ошибка в этой строчке. Где проблема не знаю...
var T:GameObject[];
var T1:GameObject;

function Awake()
{
T1 = GameObject.Find("shema");
T = gameObject.GetComponentsInChildren<Transform>();
}
meshlen
UNец
 
Сообщения: 10
Зарегистрирован: 21 июл 2010, 18:42

Re: active=false а как-же true ?

Сообщение meshlen 21 июл 2010, 20:43

от куда он узнает дочки какого объекта ему брать?
meshlen
UNец
 
Сообщения: 10
Зарегистрирован: 21 июл 2010, 18:42

Re: active=false а как-же true ?

Сообщение Zaicheg 21 июл 2010, 20:48

У тебя скрипт на UnityScript, а ты взял код из примера для C#.

от куда он узнает дочки какого объекта ему брать?

gameObject (с маленькой буквы) — ссылка на тот ГО, на котором висит скрипт.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: active=false а как-же true ?

Сообщение DbIMok 21 июл 2010, 21:06

нужно скопировать целиком правильный пример, заменить тип на Transform, написать свое действие в for.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: active=false а как-же true ?

Сообщение meshlen 21 июл 2010, 21:38

а как он будет выглядеть на UnityScript?
скидываю на С#, там объявления переменных по другому и соответственно тоже не идет...
голова уже разрывается!
meshlen
UNец
 
Сообщения: 10
Зарегистрирован: 21 июл 2010, 18:42

Re: active=false а как-же true ?

Сообщение DbIMok 21 июл 2010, 21:42

как-то так:
var childs = gameObject.GetComponentsInChildren(Transform);
for (var i=1; i<childs.Length; i++) {
Debug.Log(childs[i].gameObject.name);
}
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: active=false а как-же true ?

Сообщение meshlen 21 июл 2010, 22:08

var childs = gameObject.GetComponentsInChildren(Transform);
вот оно решение!!!!!
Спасибо всем за участие!!!!!
meshlen
UNец
 
Сообщения: 10
Зарегистрирован: 21 июл 2010, 18:42

Пред.

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

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

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