我希望我的球员能够以一种影响其刚性的力量跳跃。目前,我在FixedUpdate
循环中有以下代码:
else if(Input.GetMouseButtonDown(0) &&( Input.mousePosition.y < Screen.height/3) && isGrounded == true)
{
Debug.Log ("jump");
isGrounded = false;
if(!isGrounded)
rigidbody.AddForce(Vector3.up * jumpSpeed);
Debug.Log(isGrounded);
}
void OnCollisionStay(Collision collisionInfo)
{
isGrounded = true;
}
当我在屏幕上的适当位置按下鼠标按钮时,我会显示所有正确的调试信息。但我的球员不动。 jumpSpeed设置为100,我甚至尝试将其设置为1000以查看我的力量是否太低。但没什么。我在这做傻事吗?
答案 0 :(得分:0)
一个简单的问题?为什么要检查 if(!isGrounded) 在你加力之前?它总是会评估为true,因为您之前将其设置为false。也许你打算在跳转输入的逻辑检查之外进行检查。
无论如何,回答问题。如果您阅读AddForce上的文档,您会看到有一个可选参数来说明这是什么类型的力量。默认为'强制',你想要的是'冲动',所以改变你的行:
Debug.Log ("jump");
isGrounded = false;
rigidbody.AddForce(Vector3.up * jumpSpeed, ForceMode.Impulse);
答案 1 :(得分:0)
我测试了你的代码并且工作正常,我想问题将出现在代码的其他部分。