Unity Player: отложенная остановка движения - PullRequest
0 голосов
/ 27 мая 2020

Сегодня я делал сценарий PlayerMovement для небольшой 3D-игры, которую хотел запустить. Поэкспериментировав со сценарием, я понял, что когда вы отпускаете кнопку для перемещения, она не останавливается мгновенно, а вместо этого начинает скользить тело персонажа.

По большей части я использовал руководство Брэки по скриптам PlayerMovement, но добавил .Normalize (), чтобы убедиться, что диагонали не имеют большей скорости.

Кто-нибудь знает, как это исправить? Это мой скрипт PlayerMovement.

public class PlayerMovement : MonoBehaviour
{

    public float speed = 12f;
    public float gravity = -0.05f;
    public float jumpHeight = 4f;

    public Transform groundCheck;
    public float groundDistance = 0.4f;
    public LayerMask groundMask;

    Vector3 velocity;
    Vector3 move;
    private bool isGrounded;

    public CharacterController controller;

    void FixedUpdate()
    {
        isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);

        if (isGrounded && velocity.y < 0)
        {
            velocity.y = -2f;
        }

        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");

        Vector3 move = transform.right * x + transform.forward * z;
        move.Normalize();

        controller.Move(Time.deltaTime * speed * move);

        if (Input.GetButtonDown("Jump") && isGrounded)
        {
            velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
        }

        velocity.y += gravity * Time.deltaTime;

        controller.Move(velocity * Time.deltaTime);
    }
}

Спасибо за любую помощь или руководство!

1 Ответ

1 голос
/ 27 мая 2020

Вместо Input. GetAxis , попробуйте использовать Input. GetAxisRaw , который возвращает несглаженное значение для целевой оси, что приводит к более похожему на FPS контроллеру, более отзывчивому и быстро, без сглаживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...