在坡度上以相同速度移动球-Unity 3D

时间:2018-08-29 09:06:28

标签: c# unity3d

我想在进入的坡道上移动球,就像在平原上移动一样。目前,当坡度开始时,球速会降低,因此根据玩家的体验,球的总体运动会降低。

当它在地面或潮湿区域移动时,我想保持相同的速度。

尽管下面的图片我试图解释我的问题: enter image description here

这是我正在使用的代码段:

void FixedUpdate ()
{

    if (!GameManager.Instance.IsGameRunninng) {
        myRigidBody.velocity = Vector3.zero;
        return;
    }

    if (isJumper) {
        isJumper = false;
        myRigidBody.AddForce (Vector3.up * 35f, ForceMode.Impulse);
    }

    isGrounded = Physics.Raycast (rayTransform.position, Vector3.down, 0.5f, groundMask);

    Vector3 nextVelocity = myRigidBody.velocity;
    nextVelocity.x = ballInputHandler.horizontalInput * smoothnessX;

    if (!isGrounded) {
        nextVelocity.y -= speed * 0.3f;
    } else {
        nextVelocity.y = 0;
        nextVelocity.z = speed;
    }

    myRigidBody.velocity = Vector3.Lerp (myRigidBody.velocity, nextVelocity, smoothnessValue * Time.fixedDeltaTime);

    ClampingBallMovement ();

}

希望您能正确解决我的问题,给我一些建议,以便我可以解决这个问题。

1 个答案:

答案 0 :(得分:1)

调整nextVelocity.y组件后:

    myRigidBody.velocity = nextVelocity.normalized * desiredSpeed;