Единство - Глядя прямо вниз или вверх, я не могу пошевелить своим персонажем - PullRequest
0 голосов
/ 04 мая 2020

У меня есть контроллер персонажа на игроке, который перемещается с помощью .Move (), который прекрасно работает. Я использую этот код для просмотра

private void Look()
    {
        // Inputs from the mouse
        float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.fixedDeltaTime;
        float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.fixedDeltaTime;

        //Find current look rotation
        Vector3 rot = playerCam.transform.localRotation.eulerAngles;
        float desiredX = rot.y + mouseX;

        //Rotate, and also make sure we dont over- or under-rotate.
        xRotation -= mouseY;
        xRotation = Mathf.Clamp(xRotation, -90f, 90f);

        //Perform the rotations
        playerCam.transform.localRotation = Quaternion.Euler(xRotation, desiredX, 0);
    }

и этот код для перемещения игрока

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

        // Resets the velocity wehn on the floor
        if (isGrounded && velocity.y < 0)
        {
           velocity.y = -10;
        }

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

        Vector3 move = cameraTransform.right * x + cameraTransform.forward * z;

        if (Input.GetButton("Sprint"))
        {
            controller.Move(move * sprintSpeed * Time.deltaTime);
        }
        else
        {
            controller.Move(move * movementSpeed * Time.deltaTime);
        }


    }

Но когда я смотрю прямо вверх или вниз, игрок не двигается, и он останавливается пока я не отведу мышь от этих точек (вращение x - 90 и 90), я не понимаю, почему любая помощь будет большой, спасибо!

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