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

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

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

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

СообщениеДобавлено: 05 июл 2017, 13:13
snezhok_13
А выключать скрипт там где включаете анимацию? В третьем скрипте тоесть)

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

СообщениеДобавлено: 05 июл 2017, 13:56
DikSan
snezhok_13 писал(а):А выключать скрипт там где включаете анимацию? В третьем скрипте тоесть)

а как включить обратно, когда анимация кончится?

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

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

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

СообщениеДобавлено: 05 июл 2017, 14:17
snezhok_13
Кидать луч - норм идея. Вы в update наверняка кидаете лучи, в нем же можете проверять "проигрывается ли анимация", например.

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

СообщениеДобавлено: 05 июл 2017, 14:26
DikSan
У меня есть animator, в нем проигрывается анимация "Jump", можно пример кода, который проверит работает ли эта анимация?

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

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

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

СообщениеДобавлено: 05 июл 2017, 15:44
snezhok_13
Я сходу код не подскажу, но Вам нужно проверить по идее установлен ли флажок, который перевел стейтмашину аниматора в состояние Jump. Transition в прыжок у вас же как-то настроен

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

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

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

СообщениеДобавлено: 06 июл 2017, 18:21
ToKan
Ну можно попробовать так - если прыгает (вы же в скрипте как то это указываете))то то рейкаст не работает. Если не прыгает то работает.
если через проверку анимации то можно так

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

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

возможно можно как-то короче но я знаю только так.

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

СообщениеДобавлено: 06 июл 2017, 18:32
ToKan
И да если будите копировать (Base Layer) без подчеркивания. я чисто автоматически поставил.

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

СообщениеДобавлено: 06 июл 2017, 19:58
ilkalawson
можно в самой анимации вызвать нужный метод для отключения и включения скрипта.