C# 当我的球员跳跃时,他只能跳到同一个位置,不知道为什么?
我大概一个月前才开始学习unity,对C语言来说非常陌生。所以我只是按照一个教程在我的播放器中添加了多个跳跃,但在我注入代码后,他在移动时无法跳跃。他现在只跳到同一个地方。我搞不懂这个问题C# 当我的球员跳跃时,他只能跳到同一个位置,不知道为什么?,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我大概一个月前才开始学习unity,对C语言来说非常陌生。所以我只是按照一个教程在我的播放器中添加了多个跳跃,但在我注入代码后,他在移动时无法跳跃。他现在只跳到同一个地方。我搞不懂这个问题 void Update() { HandleInput(); if (isGrounded == true) { extraJumps = extraJumpsValue; } if (
void Update()
{
HandleInput();
if (isGrounded == true)
{
extraJumps = extraJumpsValue;
}
if (Input.GetKeyDown(KeyCode.Space) && extraJumps > 0)
{
myRigidbody.velocity = Vector2.up * jumpForce;
extraJumps--;
}
else if (Input.GetKeyDown(KeyCode.Space) && extraJumps == 0 && isGrounded == true)
{
myRigidbody.velocity = Vector2.up * jumpForce;
}
}
既然我不知道你的动作代码,我就假设它没问题。角色控制器的.isground可能有问题。尝试在控制台上记录它,并查看它在移动时返回的内容。它有时行为不端。如果是这样,您可以:
- 确保施加一些向下的力(例如重力)
- 使用光线投射实现您自己的地面检测(Youtube上有大量教程)