[英]Cannot seem to make my player jump in unity
我正在 Unity 中开发一款 2D 游戏,试图让我的玩家跳跃。 尽管看了很多视频,调整了很多次代码,但当我按下空格键时,他就是不跳。 甚至在 Unity 中检查了输入管理器之后,我确信这是一个简单的修复,我在某处遗漏了但我看不到它可能在哪里。
public class FoxyController : MonoBehaviour
{
Rigidbody2D rigidbody2d;
float horizontal;
float vertical;
public float jumpVelocity = 10f;
void Start()
{
rigidbody2d = GetComponent<Rigidbody2D>();
}
void Update()
{
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
if (Input.GetKey(KeyCode.Space))
{
Jump();
}
}
void FixedUpdate()
{
Vector2 position= rigidbody2d.position;
position.x = position.x + 4f * horizontal * Time.deltaTime;
position.y = position.y + 4f * vertical * Time.deltaTime;
rigidbody2d.MovePosition(position);
}
void Jump()
{
rigidbody2d.velocity = Vector2.up * jumpVelocity;
}
}
使用 -> rb.AddForce(Vector2.up * jumpAmount, ForceMode2D.Impulse); 其中 jumpAmount 可以是多人游戏,你可以使用 10f 作为 jumpAmount 值。
if (Input.GetKey(KeyCode.Space))
{
rb.AddForce(Vector2.up * jumpAmount, ForceMode2D.Impulse);
}
在 update 方法中添加上面的代码而不是 jump() 方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.