У меня есть спрайт "Score_off", который должен проигрывать анимационные клипы с появлением / исчезновением случайного сгенерированного числа после нажатия кнопки. Цикл, который нужно сделать, следующий:
- После нажатия кнопки некоторый код получает случайное число «Оценка» из массива [0,1,2,3]
- Sprite воспроизводит анимациюисчезновения предыдущего номера. (Один раз)
- Sprite воспроизводит анимацию появления текущего номера. (Один раз)
- Анимация останавливается на последнем кадре, который показывает текущее число.
Итак, у меня есть восемь клипов анимации: 0_anim |0_anim_reverse ... 3_anim |3_anim_reverse.
"_обратные" клипы - это те же анимации со скоростью = -1. Все клипы имеют отключенный параметр цикла.
Я создал восемь (bool) параметров для каждого состояния, связывает первую анимацию с каждой анимацией в Animator и устанавливает условие для каждой ссылки.
Снимок экрана Animator: https://sun9 -26.userapi.com / c857636 / v857636970 / b542e / Et8GtY25Hi0.jpg
//some roll code
int score = GetRandomScore();
Score_off.GetComponent<AnimatorScore>().PlayAnimation(score, Score_off);
//Score_off script:
public class AnimatorScore : MonoBehaviour
{
public string currentState = "First";
IEnumerator Waiting()
{
yield return new WaitForSeconds(2);
}
public void PlayAnimation(int animationToPlay, GameObject target)
{
Animator anim = target.GetComponent<Animator>();
anim.SetBool(currentState, false); //remove bool of old anim
if (currentState != "First")
{
currentState += "_reverse";
anim.SetBool(currentState, true);
}
StartCoroutine(Waiting());
anim.SetBool(currentState, false); //disable previous anim
currentState = animationToPlay.ToString() + "_anim";
anim.SetBool(currentState, true); //play new anim
}
}
Это работает неправильно - отключение кодастарая анимация, запускает анимацию «Первый» на пару мс и воспроизводит текущую текущую анимацию, не воспроизводя исчезающую анимацию. А когда предыдущее число является текущим - анимация отсутствует.
Пожалуйста, помогите мне выбрать правильный способ реализации этого сценария анимации.