Я работаю над поворотом камеры на основе mouseInput и хочу, чтобы он имел постоянную чувствительность на всех частотах кадров. В соответствии с документацией Unity, Input.GetAxis должен иметь частоту кадров, независимую от движения мыши.
Я обнаружил, что когда я использую приведенный ниже код и изменяю частоту кадров с 200+ на 30, Input.GetAxis возвращает очень разные выходные данные. Для 200+ кадров в секунду значение GetAxis составляет около 2-5, а для 30 кадров в секунду оно возвращает около 10-15 для тех же движений мыши. Это вызывает очень резкую разницу в чувствительности в игре. Я что-то пропустил? Спасибо
public Rigidbody _playerRigidBody;
private Vector2 _lookInput;
private void Start()
{
//Application.targetFrameRate = 30;
}
private void Update()
{
_lookInput.x = Input.GetAxis("Mouse X");
}
void FixedUpdate()
{
var sensitivity = 300f;
var newPlayerRotation = _playerRigidBody.rotation * Quaternion.Euler(_lookInput.x * sensitivity * Vector3.up * Time.deltaTime);
_playerRigidBody.MoveRotation(newPlayerRotation);
}
}
Я протестировал все в этой маленькой функции, и единственное, что вызывает проблему - это Input.GetAxis. Это противоречиво. Любые идеи или решения или обходные пути?