How to check if Animator is playing

How can I check if my Animation is playing in my Animator


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Indingo_Lava_Burst_Activator_Deactivator : MonoBehaviour
{

private PolygonCollider2D myPolygonCollider2D;

private Animator myAnimator;

private bool lava_burst;

private Rigidbody2D MyRigidbody;

private Indingo_Movement indingoMovement;

private Indingo_Jump_01 indingoJump01;

private Indingo_Jump_02 indingoJump02;

// Use this for initialization
void Start()
{
    myPolygonCollider2D = GetComponent<PolygonCollider2D>();
    myPolygonCollider2D.enabled = false;
    myAnimator = GetComponent<Animator>();
	MyRigidbody = GetComponent<Rigidbody2D>();
	indingoMovement = GetComponent<Indingo_Movement>();
	indingoJump01 = GetComponent<Indingo_Jump_01>();
	indingoJump02 = GetComponent<Indingo_Jump_02>();
}

// Update is called once per frame
void FixedUpdate()
{
    if (Input.GetKey(KeyCode.G))
    {
        myAnimator.SetBool("lava_burst", true);
        myPolygonCollider2D.enabled = true;
		indingoMovement.enabled = false;
		indingoJump01.enabled = false;
		indingoJump02.enabled = false;
    }
    else
    {
        myAnimator.SetBool("lava_burst", false);
        myPolygonCollider2D.enabled = false;
		indingoMovement.enabled = true;
		indingoJump01.enabled = true;
		indingoJump02.enabled = true;
    }

	if (MyRigidbody.velocity != Vector2.zero)
	{

		myPolygonCollider2D.enabled = false;
		Debug.Log ("Player Is Moving");

	}
}

}

If you want to get certain information about the animator from code, you need to use AnimatorStateInfo struct. Check the documentation:

Or just use GetCurrentAnimatorStateInfo() on your animator.

I think that you will need to do something with normalizedTime of the current state but I’m not sure because that really depends on your specific problem.

string animName;
string animName2 = this.anim.GetCurrentAnimatorClipInfo (0) [0].clip.name;
while (animName == animName2) {
if (anim.GetCurrentAnimatorClipInfo (0).Length != 0) {
animName = this.anim.GetCurrentAnimatorClipInfo (0) [0].clip.name;
print ("playing " + animName);
} else {
print (“sometimes the array index doesn’t have anything. this avoids errors)”;
}
yield return null;
}
print("The new anim that’s playing is: " + animName);

I’ve searched the internet up and down, and haven’t seen this kinda check. Lets you know AS SOON AS an animator clip finishes. And it averts unity’s pesky little errors.

You can check if your animation is playing by running your game then selecting your character with animation and you will see a blue bar underneath the current animation it is running

On script, you can use:

GetCurrentAnimatorStateInfo()