首页 > 解决方案 > 在斜坡上以相同的速度移动球 - Unity 3D

问题描述

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

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

虽然下面的图片我试图解释我的问题: 在此处输入图像描述

这是我使用的代码片段:

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 ();

}

我希望你正确地解决了我的问题,给我一些建议,这样我就可以解决这个问题。

标签: c#unity3d

解决方案


调整nextVelocity.y组件后:

    myRigidBody.velocity = nextVelocity.normalized * desiredSpeed;

推荐阅读