Сравнение двух кватернионов для мобильной игрыC#

Место общения программистов C#
Ответить
Anonymous
 Сравнение двух кватернионов для мобильной игры

Сообщение Anonymous »

Сейчас я работаю над мобильной игрой, используя Unity. Он предполагает использование гироскопа для определения ориентации/вращения мобильного телефона в пространстве. Мне было трудно сравнивать два кватерниона в C#. Вот мой код:

Код: Выделить всё

transform.rotation = Input.gyro.attitude;       // Take the gyroscope rotation data and copy it
transform.rotation.Set(0, 0, 0, 1);             // change current Quaternion rotation data of the copy
// Copy shoud now represent a vertical rotation
Angle = Quaternion.Angle(Input.gyro.attitude,); // Calculate the Angle between the 2
if (Angle < 45)                                 // if it's almost in vertical postion start the game
/* do something */
На самом деле я пытаюсь проверить, находится ли мобильный телефон в вертикальном положении (например, если вы прикладываете его ко лбу). Я создаю копию исходной ориентации и изменяю ее на ту, которая мне нужна. После этого я сравниваю их, и если они почти одинаковы, игра может продолжаться. У меня почти нет знаний о кватернионах. Я пытался выяснить, какие значения кватернионов w, x, y, z мне следует использовать для обозначения вертикальной ориентации, но не смог найти никаких подсказок при поиске в Google. Вот почему я прошу помощи здесь.

Подробнее здесь: https://stackoverflow.com/questions/361 ... obile-game
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»