@Geckyhit

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

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

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

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

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

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

Похожие вопросы