Animator - странно работает OnStateExit

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

Animator - странно работает OnStateExit

Сообщение Susanin 18 май 2018, 03:25

Форумчане

Использую OnStateExit на некоторых state-ах и всегда думал что данное событие сработает только когда
1) закончится анимация на стейте к которому прикреплен данный скрипт и
2)происходит анимация именно на этом стейте

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

И вот я не могу понять как определить, что закончился именно тот стейт к кторому был прикреплен скрипт с OnStateExit.
OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
stateInfo и layerIndex - всегда ссылаются на тот стейт к которому прикреплен скрипт.
Единственное решение которое я нашел это использовать :
var currentBaseState = animator.GetCurrentAnimatorStateInfo(layerIndex);
и проверять есть ли он или нет


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

OnStateExit почему-то в любом случае срабатывает 2 раза - гдето чуть раньше середины анимации и собственно в конце анимации

Ничего не понимаю!
Последний раз редактировалось Susanin 22 май 2018, 09:56, всего редактировалось 1 раз.
Susanin
UNIт
 
Сообщения: 120
Зарегистрирован: 11 дек 2015, 10:52

Re: Animator - странно работает OnStateExit

Сообщение Susanin 20 май 2018, 01:14

[loshara]Путем многих проб выяснил - что два раза срабатывает если Exit time анимации меньше 0.8 секунд....


НО все равно не понимаю почему?![/loshara]

Проблема разрешилась путем снятия галки "Can Transition To Self" в меню настроек перехода на стейт

суть проблемы все рано не ясна...........
Susanin
UNIт
 
Сообщения: 120
Зарегистрирован: 11 дек 2015, 10:52

Re: Animator - странно работает OnStateExit

Сообщение lawsonilka 20 май 2018, 19:20

слишком большой шрифт, в экран не помещается.
lawsonilka
UNIверсал
 
Сообщения: 390
Зарегистрирован: 21 окт 2014, 14:48


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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 15