Quaternion. Identity Свойство
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает кватернион, который представляет отсутствие вращения.
public: static property System::Numerics::Quaternion Identity < System::Numerics::Quaternion get(); >;
public static System.Numerics.Quaternion Identity
static member Identity : System.Numerics.Quaternion
Public Shared ReadOnly Property Identity As Quaternion
Значение свойства
Кватернион, значения которого имеют значение (0, 0, 0, 1) .
Важные классы — Quaternion
Unity использует Quaternion стандартный способ Unity для представления поворотов в виде данных. При написании кода, имеющего дело с поворотами, обычно следует использовать класс Quaternion и его методы. Подробнее
См. в классе Словарь для хранения трехмерной ориентации GameObjects Основной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь , а также использовать их для описания относительного поворота от одного ориентация на другого.
На этой странице представлен обзор класса Quaternion и его частого использования при написании сценариев с его помощью. Исчерпывающую информацию о каждом члене класса Quaternion см. в справочнике по скрипту Quaternion.
Важно понимать разницу между углами Эйлера (значениями X, Y и Z, которые вы видите в инспекторе для поворота GameObject) и базовым значением Quaternion, которое Unity использует для хранения фактического поворота GameObjects. Основы этой темы см. в статье Вращение и ориентация в Unity.
При работе с поворотами в ваших скриптах фрагмент кода, который позволяет создавать собственные компоненты, запускающие игровые события , изменяйте свойства компонента с течением времени и реагируйте на ввод данных пользователем любым удобным для вас способом. Подробнее
См. в Словарь , вы должны использовать класс Quaternion и его функции для создания и изменить значения вращения. В некоторых ситуациях допустимо использование углов Эйлера, но вы должны помнить:
– Вам следует использовать функции класса Quaternion, которые имеют дело с углами Эйлера
— Получение, изменение и повторное применение значений Эйлера из поворота может привести к непреднамеренным побочным эффектам (см. ниже)
Непосредственное создание кватернионов и управление ими
Класс Quaternion в Unity имеет ряд функций, которые позволяют создавать повороты и управлять ими без использования углов Эйлера, и именно эти функции следует использовать в большинстве типичных случаев. Каждая из этих ссылок на Справочник по сценариям с примерами кода:
Создание поворотов:
- Quaternion.LookRotation
- Quaternion.Angle
- Quaternion.AngleAxis
- Quaternion.FromToRotation
Управление поворотами:
- Quaternion.Slerp
- Quaternion.Inverse
- Quaternion.RotateTowards
Класс Transform также предоставляет методы, позволяющие работать с поворотами кватерниона:
Работа с углами Эйлера
В некоторых случаях предпочтительнее использовать в сценариях углы Эйлера. При этом важно помнить, что вы должны хранить свои углы в переменных и использовать их только для применения их в качестве углов Эйлера к вашему повороту, который в конечном итоге все равно должен храниться как кватернион. Хотя можно получить углы Эйлера из кватерниона, при извлечении, изменении и повторном применении могут возникнуть проблемы.
Подробнее о том, как именно могут возникнуть эти проблемы, можно прочитать на справочной странице скриптов eulerAngles.
Вот несколько примеров ошибок, которые обычно делаются на гипотетическом примере попытки повернуть игровой объект вокруг оси X со скоростью 10 градусов в секунду. Вот чего следует избегать:
// rotation scripting mistake #1 // the mistake here is that we are modifying the x value of a quaternion // this value does not represent an angle, and does not produce desired results void Update () < var rot = transform.rotation; rot.x += Time.deltaTime * 10; transform.rotation = rot; >// rotation scripting mistake #2 // Read, modify, then write the Euler values from a Quaternion. // Because these values are calculated from a Quaternion, // each new rotation might return very different Euler angles, which might suffer from gimbal lock. void Update ()
А вот пример использования углов Эйлера в скрипте правильно:
// Rotation scripting with Euler angles correctly. // Store the Euler angle in a class variable, and only use it to // apply it as an Euler angle, but never rely on reading the Euler back. float x; void Update ()
Quaternion.identity
Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.
Ошибка внесения изменений
По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста попробуйте снова через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.
Quaternion. Identity Property
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a quaternion that represents no rotation.
public: static property System::Numerics::Quaternion Identity < System::Numerics::Quaternion get(); >;
public static System.Numerics.Quaternion Identity
static member Identity : System.Numerics.Quaternion
Public Shared ReadOnly Property Identity As Quaternion
Property Value
A quaternion whose values are (0, 0, 0, 1) .