Ориентация любого 3D-объекта в Unity выражена в Quaternion (кватернионе).
Компонент transform в Unity имеет Rotaion (Ориентацию), которая имеет тип Quaternion
.png)
Rotation внутри редактора Unity задается углами Euler (Эйлера). Однако после редактирования одной из свойств, Unity сохраняет Rotation как тип данных Quaternion.
<br>
Углы Эйлера / Euler Angles — углы, описывающие поворот абсолютно твердого тела в трёхмерном евклидовом пространстве (x, y, z)
Для работы с углами Euler используется тип данных Vector3, хотя, разумеется, углы Euler не являются вектором.
Не смотря на то, что для Углов Эйлера используется в Unity тип данных Vector3, нельзя его путать с Vector3 реального вектора. Углы Эйлера определяются тремя углами (градусы или радианы), когда как реальный вектор определяется точкой в бесконечном пространстве.
Можно указывать значение и вне этих рамок, однако Unity просто сделает нормализует эти значения.
<br>
При работе с Rotation в исходном коде, углы Euler нужно преобразовывать в Quaternion
```csharp
//Как преобразовать углы Euler (Эйлера) в тип данных Quaternion (кватернион)
var rotation = Quaternion.Euler(x, y, z);
//Как преобразовать наоборот
var eulerAngles = rotation.eulerAngles;
```
<br>
Как взаимодействовать с Rotation в исходном коде.
```csharp
//Получаем ориентацию объекта выраженную в Quaternion (глобально)
var rotation = transform.rotation;
//То же самое, только локально
var localRotation = transform.localRotation;
//Получаем ориентацию в виде углов Эйлера выраженную в Vector3 (глобально)
var eulerAngles = rotation.eulerAngles;
//То же самое, только локально
var localEulerAngles = localRotation.eulerAngles;
```