Единство - как се пише - ldquo; след края на анимацията - rdquo
Unity, C#. Има модел с аниматор, в който вече са конфигурирани състоянията на анимацията и параметрите за преходи между тях.
Трябва да пусна анимации в определен ред. За да извикам желаната анимация, трябва само да отметна желания параметър:
Как да напиша условие "когато текущата анимация приключи"? Всички опции, които намирам, са или за анимация, а не за аниматор, или са твърде сложни и имам нужда от прост начин, който можете бързо да разберете и използвате.
Animator има метод GetCurrentAnimatorStateInfo, който извлича информация за текущото състояние на посочения слой AnimatorController. Тоест връща AnimatorStateInfo, така че си струва да го използвате.
AnimatorStateInfo от своя страна има поле IsName - което казва дали name съвпада с името на активното състояние в statemachine. Резултатът може да е нещо подобно:
За да тествате няколко анимации, най-вероятно ще трябва да ги поставите в масив и да преминете през:
P.S. GetCurrentAnimatorStateInfo - Получава информация за определен слой. Следователно, за да вземете информацията на най-основния слой, струва си GetCurrentAnimatorStateInfo(0) . В други слоеве индексът ще се промени естествено.
Не е много ясно какво искате, ако след като една анимация приключи, искате да превключите към друга, така че настройте преходите между състоянията в Mecanim.
Ако трябва да уловите момента, в който състоянието е излязло, можете да използвате класовете StateMachineBehaivour, които просто знаят как да реагират на работата в състоянието. Този скрипт е окачен в Mecanim на самото състояние. Трябва да се избере в сцената и в прозореца на инспектора да се добави съответният скрипт, както се прави с компонентитена сцената.