Unity3d 统一跳跃问题,人物根本就不跳跃

Unity3d 统一跳跃问题,人物根本就不跳跃,unity3d,Unity3d,(这是2D项目) 我的角色需要左右奔跑并在地面上跳跃。这是我第一次体验Unity,它是Unity的最新版本,我能让我的角色在改变方向时左右跑动并翻转,但它一点也不跳 对于角色我目前使用的是2盒碰撞器2D和刚体2D。角色的质量等于1 对于地面我目前使用的是2盒对撞机2Ds。地面是覆盖屏幕底部的单个精灵 下面是我目前尝试使用的跳跃和接地代码 ''' { public float maxSpeed = 10f; public float jumpVelocity = 10f; private

(这是2D项目)

我的角色需要左右奔跑并在地面上跳跃。这是我第一次体验Unity,它是Unity的最新版本,我能让我的角色在改变方向时左右跑动并翻转,但它一点也不跳

对于角色我目前使用的是2盒碰撞器2D和刚体2D。角色的质量等于1

对于地面我目前使用的是2盒对撞机2Ds。地面是覆盖屏幕底部的单个精灵

下面是我目前尝试使用的跳跃和接地代码

'''
{


public float maxSpeed = 10f;

public float jumpVelocity = 10f;

private bool isGrounded;

private float move = 0f;

private Rigidbody2D rb2d;       //Store a reference to the Rigidbody2D component required to use 2D Physics.

private SpriteRenderer sprt_render;

// Start is called before the first frame update
void Start()
{
    rb2d = GetComponent<Rigidbody2D>();

    isGrounded = true;
}

// Update is called once per frame
void Update()
{
    GetInput();

}

private void GetInput()
{
    move = Input.GetAxis("Horizontal");


    if (transform.position.x > -6.2 && transform.position.x < 5.7)
        {
            rb2d.velocity = new Vector2(move * maxSpeed, rb2d.velocity.y);
        }
    else
        {
            rb2d.velocity = new Vector2(move * maxSpeed * -1, rb2d.velocity.y);
        }

    if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
    {
          Debug.Log("Jump");
          rb2d.velocity = new Vector2(rb2d.velocity.x, jumpVelocity);
          isGrounded = false;
          //rb2d.AddForce(Vector2.up * jumpVelocity, ForceMode2D.Impulse);

    }
}

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

}

'''
“”
{
公共浮点数maxSpeed=10f;
公共浮子跳跃速度=10f;
私人学校停课;
私有浮动移动=0f;
private Rigidbody2D rb2d;//存储对使用2D物理所需的Rigidbody2D组件的引用。
私人喷泉喷泉;
//在第一帧更新之前调用Start
void Start()
{
rb2d=GetComponent();
isGrounded=true;
}
//每帧调用一次更新
无效更新()
{
GetInput();
}
私有void GetInput()
{
move=Input.GetAxis(“水平”);
if(transform.position.x>-6.2&&transform.position.x<5.7)
{
rb2d.velocity=新矢量2(移动*最大速度,rb2d.velocity.y);
}
其他的
{
rb2d.velocity=新矢量2(move*maxSpeed*-1,rb2d.velocity.y);
}
if(Input.GetKeyDown(KeyCode.Space)和&isground)
{
Log(“跳转”);
rb2d.velocity=新矢量2(rb2d.velocity.x,jumpVelocity);
isfounded=false;
//rb2d.AddForce(矢量2.up*跳跃速度,ForceMode2D.pulse);
}
}
专用空心OnCollisionInter2D(碰撞2D碰撞)
{
if(collision.gameObject.CompareTag(“地面”))
{
isGrounded=true;
}
}
}
'''

正如你所看到的,我尝试使用两种不同的方法来实现跳跃,使用速度和使用AddForce,结果完全相同,甚至不是第一次跳跃。我检查了一下断点,它肯定会通过跳转代码,但什么也没发生

添加调试语句,您会发现它与您的预期不符。如果将jumpForce增加到更高的值,会发生什么?(请注意,您已经注释掉了jumping AddForce行,它不应该被注释掉,如果您的问题中只注释掉了它,那么您可能需要编辑它以使其清晰。)只是尝试从AddForce语句中删除注释,并将jumpForce增加到100f,然后再增加到1000f,什么都没有改变。添加调试语句,你会发现它与你的预期不符。如果你将jumpForce增加到更高的值,会发生什么?(请注意,您已经注释掉了jumping AddForce行,它不应该被注释掉,如果您的问题中只注释掉了它,那么您可能需要对其进行编辑以保持清晰。)只是尝试从AddForce语句中删除注释,并将jumpForce增加到100f,然后再增加到1000f,没有任何更改。