Unity как узнать на каком кадре анимация? проигрывается или остановлена?

У меня есть яблоко я по нему тапаю оно вырастает Тапаю второй раз оно уменьшается

Рост и уменьшение реализовано через анимацию с изменением transform.scale Проблема в том что если тапнуть пока яблоко растет, оно начнет уменьшаться.

Вопрос: Как узнать проиграна ли анимация? анимация проигрывается? анимация(имя) не играет? анимация находится на последнем кадре?

в коде у меня выглядит так:

[SerializeField] private int _state; // переменная состояния
//private Animation _anim;
    
void Start()
{
    // _anim = gameObject.GetComponent<Animation>();
}

private void Update()
{
    // Debug.Log("Анимация АП: " + _anim.IsPlaying("up"));
}

private void OnMouseDown()
{
    if (gameObject.name == gameObject.name)
    {
        switch (_state)
        {
            case (0):
            {
                gameObject.GetComponent<Animator>().Play("up");
                _state = 1;

                //Debug.Log("Анимация АП: " + gameObject.GetComponent<Animator>().GetCurrentAnimatorClipInfo().);
                break;
            }
            case (1):
            {
                gameObject.GetComponent<Animator>().Play("down");
                // Debug.Log("Анимация Down: " + gameObject.GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).IsName("down"));
                _state = 0;
                break;
            }
        }
    }
}   

Я хотел реализовать так:
_state = 0 // обычное состояние
_state = 1 // яблоко ростет
_state = 1.5 // яблоко выросло
_state = 2 // яблоко уменьшается
_state = 0 // яблоко уменьшилось

если _state = 0 - можно тапнуть чтобы яблоко росло
если _state = 1.5 - можно тапнуть чтобы яблоко уменьшалось

не могу написать условие узнать на проиграна ли анимация или на каком кадре находится.


Ответы (0 шт):