Как из одного скрипта запустить/остановить другой скрипт

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

Как из одного скрипта запустить/остановить другой скрипт

Сообщение Zavhoz 14 июл 2009, 10:30

Каким способом остановить/запустить выполнение скрипта из другого скрипта. Определённо, гдето уже видел такое, перекопал весь форум, не могу найти... буду очень признателен.
И ещё вопрос. В скрипте всего три функции Start(), Update() и OnTriggerEnter(). Если в инспекторе убрать галочку на скрипте, то в теории он не должен выполняться. На практике же первые две функции молчат, а функция OnTriggerEnter() выполняется. Может плохо учил уроки?
FUNNY BLOX
Аватара пользователя
Zavhoz
UNITрон
 
Сообщения: 197
Зарегистрирован: 10 фев 2009, 07:23
Откуда: Караганда KZ
  • ICQ

Re: Как из одного скрипта запустить/остановить другой скрипт

Сообщение fox 14 июл 2009, 10:43

если скрипт уже назначен объекту, то ищешь его и ScriptName.enable = true/false; если не назначен, то сначала добавляешь как компонент и там тоже через enabled.
На счет трех функций...гм функций может быть сколь угодно много! А отключение галочки, это и есть enabled, отключает тока Update и Start, но не убирает скрипта из проекта, его функциями ты можешь пользоваться и в отключенном состоянии.
Добавить foxumkov в Skype
Мои проекты:
Turbodrive
Изображение

Изображение
Аватара пользователя
fox
UNITрон
 
Сообщения: 255
Зарегистрирован: 07 ноя 2008, 13:02
Откуда: Питер
  • ICQ

Re: Как из одного скрипта запустить/остановить другой скрипт

Сообщение Zavhoz 14 июл 2009, 11:10

по первому понятно, спасибо.
а вот по второму: я понимаю что отключив скрипт, я его никуда не удаляю, а так сказать откладываю на потом. но в данном случае "на потом" срабатывает само по себе, т.е. мне функция из скрипта нужна через 10 минут, а она сама собой сейчас выполнилась... нехорошо :-?
FUNNY BLOX
Аватара пользователя
Zavhoz
UNITрон
 
Сообщения: 197
Зарегистрирован: 10 фев 2009, 07:23
Откуда: Караганда KZ
  • ICQ

Re: Как из одного скрипта запустить/остановить другой скрипт

Сообщение Neodrop 14 июл 2009, 11:32

Поставьте логическую проверку на активность скрипта.
Делов то. :-?

C#
Код: Выделить всё
void OnTriggerEnter()
{
   if (!enabled) return;
}
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Как из одного скрипта запустить/остановить другой скрипт

Сообщение Neodrop 14 июл 2009, 12:18

А чтобы и вовсе исключить объект из коллизий, нужно перенести его в слой Ignore Collision при отключении скрипта.
и событие OnTrigger перестанет вызываться совсем.
То есть:

C#
Код: Выделить всё
void OnDisable()
{
   gameObject.layer = 2;
}
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


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

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

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