Проблема в том что когда мой персонаж прыгает анимация работает хорошо но если у моего персонажа прыжок выше то анимация проигрывается быстрее и персонаж приземляется с анимацией покоя. Мне же нужно чтобы вне зависимости от того, как долго персонаж находился в воздухе, должна проигрываться анимация прыжка. Извините если я немного не понятно объяснил!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
Rigidbody2D rb;
Animator anim;
public float MoveSpeed;
private float ControllerMove;
public float JumpForce;
public Transform GroundCheck;
public LayerMask whIsGround;
public bool Grounded = false;
public float GroundRadius;
void Start()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}
void Update()
{
Grounded = Physics2D.OverlapCircle(GroundCheck.position, GroundRadius, whIsGround);
ControllerMove = Input.GetAxis("Horizontal");
if(Input.GetKeyDown(KeyCode.Space) && Grounded)
{
Jump();
anim.SetBool("Jump", true);
}
else if(Grounded == true)
{
anim.SetBool("Jump", false);
}
}
private void FixedUpdate()
{
rb.velocity = new Vector2(ControllerMove * MoveSpeed, rb.velocity.y);
if(Input.GetAxis("Horizontal") == 0)
{
anim.SetBool("Run", false);
}
else
{
FlipSpite();
anim.SetBool("Run", true);
}
}
private void Jump()
{
rb.velocity += JumpForce * Vector2.up;
}
private void FlipSpite()
{
if(Input.GetAxis("Horizontal") > 0)
{
transform.localRotation = Quaternion.Euler(0, 0, 0);
}
if(Input.GetAxis("Horizontal") < 0)
{
transform.localRotation = Quaternion.Euler(0, 180, 0);
}
}
}