Отключение скрипта на время анимации

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

Отключение скрипта на время анимации

Сообщение DikSan 05 июл 2017, 13:11

Здравствуйте! Есть анимация и нужно, чтобы во время работы этой анимации отключался скрипт(и скрипт и анимация прикреплены к одному объекту). пробовал добавить отключение скрипта прям на таймлайн, но работает оно как-то криво, с задержкой. (c#)
DikSan
UNIт
 
Сообщения: 52
Зарегистрирован: 23 июн 2017, 16:34

Re: Отключение скрипта на время анимации

Сообщение snezhok_13 05 июл 2017, 13:13

А выключать скрипт там где включаете анимацию? В третьем скрипте тоесть)
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Отключение скрипта на время анимации

Сообщение DikSan 05 июл 2017, 13:56

snezhok_13 писал(а):А выключать скрипт там где включаете анимацию? В третьем скрипте тоесть)

а как включить обратно, когда анимация кончится?
DikSan
UNIт
 
Сообщения: 52
Зарегистрирован: 23 июн 2017, 16:34

Re: Отключение скрипта на время анимации

Сообщение DikSan 05 июл 2017, 14:02

Щас объясню зачем это нужно, может вообще что-либо намного проще предложите.
Есть персонаж. в скрипте я пускаю вниз луч и, если внизу нет ничего, то проигрываю анимацию падения. Но мне нужно, чтобы когда я перепрыгиваю пропасть (анимация прыжка) скрипт, кидающий лучи, переставал работать (иначе в момент прыжка он не находит под собой ничего и проигрывает анимацию падения)
Если как-нибудь проще можно определить наличие блока под персонажем, то напишите как
DikSan
UNIт
 
Сообщения: 52
Зарегистрирован: 23 июн 2017, 16:34

Re: Отключение скрипта на время анимации

Сообщение snezhok_13 05 июл 2017, 14:17

Кидать луч - норм идея. Вы в update наверняка кидаете лучи, в нем же можете проверять "проигрывается ли анимация", например.
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Отключение скрипта на время анимации

Сообщение DikSan 05 июл 2017, 14:26

У меня есть animator, в нем проигрывается анимация "Jump", можно пример кода, который проверит работает ли эта анимация?
DikSan
UNIт
 
Сообщения: 52
Зарегистрирован: 23 июн 2017, 16:34

Re: Отключение скрипта на время анимации

Сообщение DikSan 05 июл 2017, 15:05

нашел в доках как узнать работает ли вообще хоть какая - либо анимация, но мне нужно узнать эту информацию о конкретной анимации "Jump", помогите пожалуйста :)
DikSan
UNIт
 
Сообщения: 52
Зарегистрирован: 23 июн 2017, 16:34

Re: Отключение скрипта на время анимации

Сообщение snezhok_13 05 июл 2017, 15:44

Я сходу код не подскажу, но Вам нужно проверить по идее установлен ли флажок, который перевел стейтмашину аниматора в состояние Jump. Transition в прыжок у вас же как-то настроен
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Отключение скрипта на время анимации

Сообщение DikSan 05 июл 2017, 16:36

перевожу в состояние прыжка с помощью триггера(в аниматоре на переходе весит триггер), поэтому после его срабатывания уже не узнаешь работает ли анимация, а обратно в состояние покоя возвращается просто когда закончится анимация.
DikSan
UNIт
 
Сообщения: 52
Зарегистрирован: 23 июн 2017, 16:34

Re: Отключение скрипта на время анимации

Сообщение ToKan 06 июл 2017, 18:21

Ну можно попробовать так - если прыгает (вы же в скрипте как то это указываете))то то рейкаст не работает. Если не прыгает то работает.
если через проверку анимации то можно так

bool _jamp = anim.GetCurrentAnimatorStateInfo(0).fullPathHash == Animator.StringToHash("Base_Layer.Jump");

За место (0) указываете тот слой на котором у вас проигрывается анимация (0) слои начинаются с (0), если на первом то оставляете (0).
Base_Layer - это тоже название слоя но в формате стринг.
Jump - это название анимации коротая проигрывается (не функции, а именно анимации).

возможно можно как-то короче но я знаю только так.
ToKan
UNIт
 
Сообщения: 55
Зарегистрирован: 11 сен 2015, 17:19

Re: Отключение скрипта на время анимации

Сообщение ToKan 06 июл 2017, 18:32

И да если будите копировать (Base Layer) без подчеркивания. я чисто автоматически поставил.
ToKan
UNIт
 
Сообщения: 55
Зарегистрирован: 11 сен 2015, 17:19

Re: Отключение скрипта на время анимации

Сообщение ilkalawson 06 июл 2017, 19:58

можно в самой анимации вызвать нужный метод для отключения и включения скрипта.
ilkalawson
UNIверсал
 
Сообщения: 412
Зарегистрирован: 19 янв 2015, 20:38
Skype: lawsonunity


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

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

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