You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中Rigidbody2D角色墙角浮空无法跳跃问题求助

角色墙角浮空导致无法跳跃问题求助

为解决角色卡墙问题,我给角色添加了无摩擦物理材质,效果良好,但新问题出现:当角色朝墙角移动并跳跃后,下滑时无法接触墙角地面,会轻微浮空(游戏视图中角色浮空位置的y值约为0.0049...),导致isGrounded布尔值始终为false,无法再次跳跃。需注意,角色在此处可自由移动,但因未与地面碰撞,无法跳跃。

以下是我的基础移动代码:

using UnityEngine;
using UnityEngine.InputSystem;

public class PlayerController : MonoBehaviour
{
    private PlayerInput playerInput;

    private InputAction moveAction;
    private InputAction jumpAction;

    private Rigidbody2D rb;

    private bool isGrounded;
    private bool isMoving = false;
    private float speed = 15f, jumpForce = 35f;

    private Vector2 moveInput;

    private void Awake() {
        rb = GetComponent<Rigidbody2D>();

        playerInput = GetComponent<PlayerInput>();

        moveAction = playerInput.actions["Move"];
        jumpAction = playerInput.actions["Jump"];
    }

    private void FixedUpdate() {
        if(isMoving) {
            rb.velocity = new Vector2(moveInput.x * speed, rb.velocity.y);
        }
    }

    private void OnEnable() {
        moveAction.Enable();
        jumpAction.Enable();
    }

    private void OnDisable() {
        moveAction.Disable();
        jumpAction.Disable();
    }

    private void OnMove() {
        isMoving = !isMoving;
        moveInput = moveAction.ReadValue<Vector2>();
    }

    private void OnJump() {
        if(isGrounded) {
            isGrounded = false;
            rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
        }
    }

    private void OnCollisionEnter2D(Collision2D other) {
        if(other.gameObject.CompareTag("Ground")) {
            isGrounded = true;
        }
    }
}

玩家对象Inspector视图:
玩家对象Inspector视图

地面Tilemap的Inspector视图:
地面Tilemap Inspector视图

我已尝试以下方法:

  • 修改Project Settings/Physics2D中的Default Contact Offset值接近0;
  • 缩小CapsuleCollider2D的尺寸;
  • 切换Collision Detection模式选项。

内容的提问来源于stack exchange,提问作者Enes Ceylan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 05:22:38