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