我正在练习创建 2D 游戏,我编写了 C# 脚本代码,但我的角色无法跳跃。
我尝试用同样不起作用的“UpArrow”替换“Space”。
if (Input.GetKey(KeyCode.UpArrow) && onGround)
{
rb.velocity = new Vector2(rb.velocity.x, jumppower);
}
什么都没发生。角色可以左右移动但不能跳跃。
我正在练习创建 2D 游戏,我编写了 C# 脚本代码,但我的角色无法跳跃。
我尝试用同样不起作用的“UpArrow”替换“Space”。
if (Input.GetKey(KeyCode.UpArrow) && onGround)
{
rb.velocity = new Vector2(rb.velocity.x, jumppower);
}
什么都没发生。角色可以左右移动但不能跳跃。
一些项目开始:
Debug.Log($"is on ground {onGround}")
在 if 之前添加 a 并检查它。然后我看到一个逻辑问题。这是您的代码中发生的情况:
要解决此问题,请替换此行:
rb.velocity = new Vector2(rb.velocity.x, jumppower);
有了这个:
rb.AddForce(new Vector2(0, jumppower), ForceMode2D.Impulse);