为什么我的 unity 角色会卡在 tilemap 中?

Why does my charakter in unity gets stuck in the tilemap?

在我的 Unity 中,当我的玩家受到很大的力时,他每次都会卡在对撞机中(如果他从高处掉落,重力等级或他的跳跃力很高)。在图片中你可以看到 Colliders 和 Renderer。Player stuck in Platform
平台组件 Tilemap 中只有一个组件未显示在屏幕上。 这是我的 Playermovement 代码:

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



public class Player : MonoBehaviour
{


    [SerializeField] private LayerMask platformsLayerMask;
    private Rigidbody2D rigidbody2d;
    private BoxCollider2D boxCollider2d;






    private void Awake()
    {
        
        rigidbody2d = transform.GetComponent<Rigidbody2D>();
        boxCollider2d = transform.GetComponent<BoxCollider2D>();
    }


    private void Update()
    {
        if (IsGrounded() && Input.GetKeyDown(KeyCode.Space))
        {
            float jump_power = 17.5f;
            rigidbody2d.velocity = Vector2.up * jump_power;
    
    
        }

        HandleMovement();
       

    }


    private bool IsGrounded()
    {
        RaycastHit2D raycastHit2d = Physics2D.BoxCast(boxCollider2d.bounds.center, boxCollider2d.bounds.size, 0f, Vector2.down, .1f, platformsLayerMask);
        return raycastHit2d.collider != null;
    }

    private void HandleMovement()
    {
        float moveSpeed = 10f;

        if (Input.GetKey(KeyCode.A))
        {
            rigidbody2d.velocity = new Vector2(-moveSpeed, rigidbody2d.velocity.y);
    
        }

        else if (Input.GetKey(KeyCode.D))
        {
            rigidbody2d.velocity = new Vector2(+moveSpeed, rigidbody2d.velocity.y);
        }
    
        else
        {
            rigidbody2d.velocity = new Vector2(0, rigidbody2d.velocity.y);
        }                   

    }            

}

您是否尝试过将玩家的刚体碰撞检测设置为连续?如果碰撞检测设置为离散,使用内置物理系统时很容易遇到这种问题