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 - можно тапнуть чтобы яблоко уменьшалось
не могу написать условие узнать на проиграна ли анимация или на каком кадре находится.