Как сделать движение этой камеры более плавным?

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

Спасибо!

public class LimitedCamera : MonoBehaviour
{

    public float LimitAngleX = 10f;
    public float LimitAngleY = 10f;

    private float AngleX;
    private float AngleY;
    public void Update()
    {
        var angles = transform.localEulerAngles;

        var xAxis = Input.GetAxis("Mouse X");
        var yAxis = Input.GetAxis("Mouse Y");

        AngleX = Mathf.Clamp(AngleX - yAxis, -LimitAngleX, LimitAngleY);
        AngleY = Mathf.Clamp(AngleY + xAxis, -LimitAngleY, LimitAngleY);

        angles.x = AngleX;
        angles.y = AngleY;

        transform.localRotation = Quaternion.Euler(angles);

        transform.localEulerAngles = angles;
    }
}
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
1
0
34
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В вашем LimitedCamera классе:

public static float MouseSensitivityX = 0.1f;
public static float MouseSensitivityY = 0.1f;

И в вашем методе Update():

var xAxis = Input.GetAxis("Mouse X") * MouseSensitivityX;
var yAxis = Input.GetAxis("Mouse Y") * MouseSensitivityY;

Вы также можете изменить чувствительность в меню настроек, используя PlayerPrefs.

Ответ принят как подходящий

Решение: умножить Time.deltaTime на InputAxis для сглаживания камеры. Этот метод подавляет колебания кадров в игре, а также делает ее более плавной на более слабых системах.

var xAxis = Input.GetAxisRaw("Mouse X") * Time.unscaledDeltaTime * sensitivity;
var yAxis = Input.GetAxisRaw("Mouse Y") * Time.unscaledDeltaTime * sensitivity;

Вы также можете контролировать скорость, изменяя переменную sensitivity.

public float sensitivity = 10f;

Другие вопросы по теме