@y_meny_IJJu3a

Как убрать рывок Quaternion.Slerp?

Я использую этот мой кривой "код" для камеры игрока. Я перерыл весь интернет, но ничего не понял, только больше себя запутал. Я понимаю в чем дело (потому что Quaternion.Slerp ищет минимальное расстояние, а когда делается резкий рывок мышью, он понимает, что по другому пути будет быстрее), но не понимаю как это исправить. Я загрузил на яндекс диск видео чтобы было легче понять мою проблему. https://disk.yandex.ru/i/lZdfiAq5fYBOrQ
[SerializeField] private GameObject player;
    [SerializeField] float minX = -90f, maxX = 90f, speed, sensitivity, sensZ, rotY, rotX, rotZ;

    void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;
    }

    void Update()
    {
        Transform();
    }
    private void Transform()
    {
        rotY += Input.GetAxis("Mouse X") * sensitivity;
        rotX += Input.GetAxis("Mouse Y") * sensitivity;
        rotZ = Input.GetAxis("Mouse X") * sensZ;

        rotX = Mathf.Clamp(rotX, minX, maxX);

        Quaternion _target = Quaternion.Euler(-rotX, player.transform.localEulerAngles.y, rotZ);
        Quaternion _targetPlayer = Quaternion.Euler(-player.transform.rotation.x, rotY, player.transform.rotation.z);

        player.transform.rotation = Quaternion.Slerp(player.transform.rotation, _targetPlayer, speed * Time.deltaTime);
        transform.rotation = Quaternion.Slerp(transform.rotation, _target, Time.deltaTime * speed);
    }
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
@123141324
кароче сначала так пайдешь потом так пайдешь потом туда пайдешь
Ответ написан
Комментировать
@Xuylo
жопой об косяк
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы