Unity 2D: когда включен аниматор игрок перестает двигаться , когда отключаю анимации тогда двигается .(Есть код)

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

public class control : MonoBehaviour
{
   public float speed;
   public float jumpForce;   
   private Rigidbody2D rb;
   private bool isGrounded;
   public Transform groundCheck;
   public float checkRadius;
   public LayerMask whatIsGround;
   private int extraJumps;
   public int extraJumpsValue;
   private Animator anim;
   
   private void Start()
   {
    rb = GetComponent<Rigidbody2D>();
    anim = GetComponent<Animator>();
   }
   private void FixedUpdate()
   {
        isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
   }
   void Update()
   {   
    float moveInput = Input.GetAxisRaw("Horizontal");
    if(moveInput == 0)
    {
        anim.SetBool("isRunning", false);
    }
    else 
    {
        anim.SetBool("isRunning", true);
    }
        rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
    if (isGrounded == true)
    {
        extraJumps = extraJumpsValue;
    }

    if(Input.GetKeyDown(KeyCode.UpArrow) && extraJumps > 0)
    {
       rb.velocity = Vector2.up * jumpForce;
       extraJumps--;
    }
    else if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps == 0 && isGrounded == true)
    {
        rb.velocity = Vector2.up * jumpForce;
    }
   }
}

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

Автор решения: Yaroslav

Видимо в вашем аниматоре присудствует анимация для Transform.localPosition, что перекрывает физику тела.

Вам нужна иерархия:

Player
 \_ Skin

Где коллайдер и скрипты на пустом Player, а моделька/спрайты и анимации исполняет Skin.

→ Ссылка