【问题标题】:Jump with force Unity用力跳跃 Unity
【发布时间】:2014-05-20 21:04:13
【问题描述】:

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

【问题讨论】:

    标签: c# unity3d game-physics rigid-bodies


    【解决方案1】:

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

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

    Debug.Log ("jump");
    isGrounded = false;
    rigidbody.AddForce(Vector3.up * jumpSpeed, ForceMode.Impulse);
    

    【讨论】:

      【解决方案2】:

      我测试了你的代码,它工作正常,我猜问题可能出在你代码的其他部分。

      【讨论】:

        猜你喜欢
        • 2018-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-23
        相关资源
        最近更新 更多