Проблема с поворотом объекта при использовании гироскопа в Unity
Я использую этот код, чтобы управлять поворотом объекта с помощью гироскопа:
Vector3 previousEulerAngles = transform.eulerAngles;
Vector3 gyroInput = -Input.gyro.rotationRateUnbiased;
Vector3 targetEulerAngles = previousEulerAngles + gyroInput * Time.deltaTime * Mathf.Rad2Deg;
targetEulerAngles.x = 0.0f;
targetEulerAngles.y = 0.0f;
transform.eulerAngles = targetEulerAngles;
Всё работает почти так, как мне нужно, но есть 2 проблемы. При резком повороте смартфона и его повороте больше, чем на 360 градусов, объект смещается со своей начальной позиции. Появляется крен в одну из сторон и объект остаётся слегка наклонён.
Если повернуть смартфон перед запуском приложения, то поворот объекта будет отсчитываться от начального положения, а не от положения поворота гироскопа. И здесь также появляется разница в повороте смартфона и объекта.