Страница 1 из 1

Отключить скрипт другого объекта

СообщениеДобавлено: 24 ноя 2011, 22:58
12sd
Идиотский вопрос, но в доках не нашел.
Нужно из одного объекта в нужный момент включать/отключать скрипт другого объекта.
да, можно делать так:
Синтаксис:
Используется csharp
 ScriptName other = gameObject.GetComponent<ScriptName>();
other.DoSomething();
 

и эта функция DoSomething будет регулировать деятельность объекта. Но или мне кажется, или я действительно где-то видел
метод, который отключает скрипт. В редакторе во время игры ведь можно.

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 24 ноя 2011, 23:01
seaman
other.enabled = false;
Не?

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 24 ноя 2011, 23:02
12sd
seaman писал(а):other.enabled = false;
Не?

говорил ведь, вопрос идиотский. вылетело из головы.
спасибо)

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 16:30
12sd
Не все так просто.
Синтаксис:
Используется csharp
GameObject temp = GameObject.Find ("Object");
Rotate other = temp.GetComponent<Rotate>();
other.enabled=true;

The type or namespace name `Rotate' could not be found. Are you missing a using directive or an assembly reference?
Rotate.cs у другого объекта ("Object").
Код из справки.

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 17:57
12sd
не уж-то никто не знает, в чем я не прав?

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 18:37
DbIMok
чтобы получить с объекта компонент Rotate, нужно его сначала добавить. чтобы добавить, нужно его написать. у вас в коде его нет

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 19:42
12sd
DbIMok писал(а):чтобы получить с объекта компонент Rotate, нужно его сначала добавить. чтобы добавить, нужно его написать. у вас в коде его нет

нет, у объекта Object есть скрипт (компонент) Rotate, который изначально выключен. Из другого скрипта у другого объекта нужно у
объекта Object включить компонент Rotate.

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 19:49
DbIMok
12sd писал(а):The type or namespace name `Rotate' could not be found.

говорит об этом. если ошибка изменилась, значит нужно написать новую ошибку. либо у вас смесь явы и шарпа и проблема с областями видимости

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 20:37
12sd
DbIMok писал(а):
12sd писал(а):The type or namespace name `Rotate' could not be found.

говорит об этом. если ошибка изменилась, значит нужно написать новую ошибку. либо у вас смесь явы и шарпа и проблема с областями видимости

как же проблемы области видимости решить?

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 21:43
DbIMok
писать все на одном языке либо прочитать про порядок компиляции, переместить ротейт скрипт в Plugins

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 22:03
12sd
DbIMok писал(а):писать все на одном языке либо прочитать про порядок компиляции, переместить ротейт скрипт в Plugins

http://unity3d.com/support/documentatio ... ugins.html
так что ли? это нереально, проще переписать. а можно как-то сделать взаимодействие двух скриптов на разных языках? например, хоть переменную в другом поменять, или функцию дернуть.

Re: Отключить скрипт другого объекта

СообщениеДобавлено: 27 ноя 2011, 23:23
DbIMok