0

我希望我的玩家跳跃时会受到影响其刚体的力。目前,我的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,以查看我的力量是否太低。但什么都没有。我在这里做傻事吗?

4

2 回答 2

0

一个快速的问题?为什么在添加力之前检查 if (!isGrounded) ?它将始终评估为 true,因为您之前将其设置为 false。也许您打算在跳转输入的逻辑检查之外进行检查。

无论如何,继续回答。如果您阅读有关AddForce的文档,您会看到有一个可选参数来说明这是什么类型的力。默认值为“Force”,而您想要的是“impulse”,因此将您的行更改为:

Debug.Log ("jump");
isGrounded = false;
rigidbody.AddForce(Vector3.up * jumpSpeed, ForceMode.Impulse);
于 2014-05-20T12:54:52.463 回答
0

I tested your code and it works fine, I guess the problem will be in some other piece in your code.

于 2014-05-20T13:04:13.773 回答