Ребзя вопрос по анимации. Мы можем узнать какая анимация в

контроллере сейчас играеться, а что если нам надо знать не о проигрывании анимации, а о проигрывании стейт машины с 5 анимациями. Как узнать проигрывается ли сейчас определённая стейт машина?

4 ответов

13 просмотров
CyberMason-Megadrive Автор вопроса

private bool IsAnimationPlaying(string animationName) { var animatorStateInfo = _animator.GetCurrentAnimatorStateInfo(0); Debug.Log(animatorStateInfo.IsName(animationName)); return animatorStateInfo.IsName(animationName); } private async UniTask AnimationPlay(string animationKey) { if (animationKey == DEATH_KEY) { _animator.SetTrigger(animationKey); return; } await DoTrigger(animationKey); await UniTask.WaitWhile(() => IsAnimationPlaying(animationKey)); Debug.Log($"{animationKey} animation is played"); } private async UniTask DoTrigger(string animationKey) { _animator.SetTrigger(animationKey); while (!IsAnimationPlaying(animationKey)) { await UniTask.DelayFrame(1); } while (IsAnimationPlaying(animationKey)) { await UniTask.DelayFrame(1); } } вот так вы можем работать с единичной анимацией имя которой нам известно. А если добавить стейт машину на рандомную анимацию из 5 допустим, то он уже не завершает юнитаску, ибо имя анимации там может быть не соответсвовать константе ATTACK = "Attack" Можно конечно циклом перебирать все возможные называния анимаций но это во первых костыль, во вторых нагрузка лишняя Update, вроде как можно проверять по тегам анимацю, вопрос закрыт

CyberMason Megadrive
private bool IsAnimationPlaying(string animationNa...

какой-то жуткий костыль о_О Бехейвер можно же для такого использовать, зачем городить какой-то велосипед

CyberMason-Megadrive Автор вопроса

мне не нужно чтоб бехейвиор отвечал за боевку и дергал оттуда код, это не архитектурно, бехейвиор должен отвечать только за анимации и параметры аниматора

CyberMason Megadrive
мне не нужно чтоб бехейвиор отвечал за боевку и де...

я тебе сказал: ты можешь из бехейвера код дёрнуть. Хочешь - используй его как ивентовую систему, не возбраняется. И не надо городить огород

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

Обсуждают сегодня

Кто создает тут ботов для телеграмм групп ?
Antskup
8
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
13
господа, когда у вас в боте есть локализация (ру + англ, остальные языки пока не планируются), вы на первом старте как с языком решаете вопрос: смотрите на language_code приле...
Denis 🐍|👑 | darling! 🥰
5
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Мне нужен бот который в группе будет за неправильное оформление ордера удалять и высылать как правильно составить его Кто такой напишет?
Antskup
1
А чего при переходе с 2 на 3 все что в билдере сделано тютю?
Денис Александрович
5
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Карта сайта