Как вращательное движение объекта с помощью гироскопа надежно написано в Unity? - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь добавить контроль над персонажем моей игры Android, используя угол наклона телефона (вертикальный портретный режим равен 0, а поворотом влево или вправо управляет угол), но я не нахожу метод, который делает это хорошо.

Я попытался отладить, используя Gyroscope.RotationRateUnbiased.z (преобразованный в градусы и умноженный на Time.fixedDeltaTime) и добавив его в число с плавающей точкой при каждом обновлении, но, похоже, легко приводит к потере калибровки, так как если телефон поворачивается в нерабочем положении, он все равно будет добавлен в сохраненный поплавок, и, таким образом, при настройке удержания ваше вращение будет смещено по сравнению с исходной калибровкой. Он также не отслеживает полностью точно, поэтому, если вы поворачиваете телефон очень быстро, это может также привести к развитию смещения.

Другой вариант, который я пробовал, - это использовать Gyroscope.attitude, но я не вижу ничего осей, реагирующих непосредственно на ось вращения я после. Я контролировал каждую из осей, преобразованных в углы Эйлера, и ничто не реагирует на это так, как можно было бы ожидать. Мне кажется, он использует вместо этого компас, так как он постоянно меняется, когда я поворачиваюсь относительно северного полюса, а не в зависимости от того, насколько параллелен телефон к земле.

Итак, как мне получить измерение? насколько близко телефон параллелен к земле вбок?

Заранее спасибо.

...