Переместить мяч с одинаковой скоростью на склоне - Unity 3D - PullRequest
0 голосов
/ 29 августа 2018

Я хочу перемещать мяч на склонах, как будто он движется по ровной поверхности. В настоящее время, когда начался уклон, скорость мяча уменьшается, поэтому общее движение мяча уменьшается в зависимости от опыта игрока.

Я хочу сохранить ту же скорость при движении по земле или по наклонным участкам.

Хотя на следующем рисунке я попытался объяснить свою проблему: 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 голосов
/ 29 августа 2018

После настройки компонента nextVelocity.y:

    myRigidBody.velocity = nextVelocity.normalized * desiredSpeed;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...