Как сделать анимацию смерти unity2d

Хотел сделать анимацию смерти но ничего не получается вот код:

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

public class HeroController : MonoBehaviour
{
    public float speed = 3f;
    public float jumpForce = 5f;
    public float health = 10;

    private Rigidbody2D rb;
    private Collider2D collision;
    private Animator anim;
    private SpriteRenderer sprite;

    private bool isGrounded = false;
    private bool isGameOvered = false;
    public bool isTrigger = false;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
        collision = GetComponent<Collider2D>();
        sprite = GetComponent<SpriteRenderer>();
    }

    private States State
    {
        get { return (States)anim.GetInteger("State"); }
        set { anim.SetInteger("State", (int)value); }
    }

    void Update()
    {
        CheckGround();
        if (isGrounded)
        {
            State = States.idle;
        }
        if(Input.GetButton("Horizontal"))
        {
            RunLogic();
            
        }
        if(isGrounded && Input.GetKeyDown(KeyCode.Space) && isTrigger == false)
        {
            JumpLogic();     
        }
        if (transform.position.y <-20)
        {
            GameOver();
        }
    }

    private void RunLogic()
    {
        if (isGrounded)
        {
            State = States.run;
        }

        Vector3 dir = transform.right * Input.GetAxis("Horizontal");
        transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);

        sprite.flipX = dir.x < 0.0f;
    }
    public void TakeDamage(int damage)
    {
        health -= damage;
        if(health <= 0)
        {
            GameOver();
        }
    }

    private void JumpLogic()
    {
        rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }
    private void CheckGround()
    {
        Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
        isGrounded = collider.Length > 1;

        if (!isGrounded) 
        { 
            if(rb.velocity.y > 0)
            {
                State = States.jump;
            }
            else
            {
                State = States.fall;
            }
        }
       
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Enemy")
        {
            GameOver();
        }
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        isTrigger = true;
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        isTrigger = false;
    }

    private void GameOver()
    {
        if(isGameOvered)
        {
            return;
        }
        GameOverAnimation();
        StartCoroutine("add_timer");
        
       
    }
    private void GameOverAnimation()
    {
        State = States.gameover;
    }
    IEnumerator add_timer()

    {

        yield return new WaitForSeconds(5);

        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);

    }

}
public enum States
{
    idle,
    run,
    jump,
    fall,
    gameover
}

Вот как выглядит аниматор: Но ничего не виходит анимация не проигруется. Помогите пж.


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