@Geckyhit

Отслеживание текущей анимации?

Здравствуйте, возможно ли в unity3d (практически без костылей) отслеживать выполняется ли определенная анимация в текущий момент?
  • Вопрос задан
  • 1068 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Есть три варианта:
1. Создать в нужном кадре анимации событие и подцепить туда метод. Корявый и неудобный метод, но как вариант, если анимация одна и меняться не будет. В последних версиях юнити их можно даже добавлять из кода, но я бы всё равно не советовал запускать методы через строки.

2. Внутри OnAnimatorMove дёргать Animator.GetCurrentAnimatorStateInfo. Не супер надёжный метод при низком фпс, короткие переходы можно проскочить, но в остальном вполне нормальный и подходит для синхронизации чего-либо со временем анимации.

3. Использовать StateMachineBehaviour. Самый универсальный и надёжный способ, при желании классы можно проинициализировать с помощью Animator.GetBehaviour. Требует ручного навешивания скриптов на узлы графа, но это можно легко автоматизировать при желании.

Не стоит также забывать про компонент Animation. В последних версиях его плохо поддерживают, но, по крайней мере, текущая анимация определяется тривиально.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы