Matrix4x4
структура в UnityEngine
Выполнено в:UnityEngine.CoreModule
Описание
Стандартная матрица преобразования 4x4.
Матрица преобразований может выполнять произвольные линейные преобразования 3D (i.e. перемещение, вращение, масштабирование, сдвиг и т.д.) и перспективные преобразования с использованием однородных координат. Матрицы редко используются в скриптах; чаще всего используются Vector3s, Quaternionи функциональность Transform класс проще. Обычные матрицы применяются в особых случаях — например, при настройке нестандартной проекции камеры.
В Unity, несколько Transform, Camera, Material, Graphics и GL функции используют Matrix4x4.
Матрицы в Unity являются столбцовыми; i.e. позиция матрицы преобразования находится в последнем столбце, а первые три столбца содержат оси x, y и z. Данные доступны как:
row + (column*4). Матрицы можно индексировать как массивы 2D, но обратите внимание, что в выражении вроде mat[a, b], a относится к индексу строки, а b относится к индексу столбца.
using UnityEngine;
public class ExampleScript : MonoBehaviour { void Start() { // get matrix from the Transform var matrix = transform.localToWorldMatrix; // get position from the last column var position = new Vector3(matrix[0,3], matrix[1,3], matrix[2,3]); Debug.Log("Transform position from matrix is: " + position); } }
Статические свойства
| Свойство | Описание |
|---|---|
| identity | Возвращает матрицу идентификации (только для чтения). |
| zero | Возвращает матрицу с нулевыми элементами (только для чтения). |
Свойства
| Свойство | Описание |
|---|---|
| decomposeProjection | Это свойство принимает матрицу проекции и возвращает шесть плоскостных координат, которые определяют проекционный фрустум. |
| determinant | Детерминант матрицы. (только для чтения) |
| inverse | Обратная матрица этой матрицы. (только для чтения) |
| isIdentity | Проверяет, является ли это матрицей идентификации. (Только для чтения) |
| lossyScale | Попытки получить значение масштаба из матрицы. (только для чтения) |
| rotation | Попытки получить кватернион вращения из этой матрицы. |
| это[int,int] | Элемент доступа в [строка, столбец]. |
| transpose | Возвращает транспозицию этой матрицы (только для чтения). |
Открытые методы
| Метод | Описание |
|---|---|
| GetColumn | Получить столбец матрицы. |
| GetPosition | Получить вектор положения из матрицы. |
| GetRow | Возвращает строку матрицы. |
| MultiplyPoint | Преобразует позицию по этой матрице (общая). |
| MultiplyPoint3x4 | Преобразует позицию по этой матрице (быстро). |
| MultiplyVector | Преобразует направление по этой матрице. |
| SetColumn | Задает столбец матрицы. |
| SetRow | Задает строку матрицы. |
| SetTRS | Устанавливает эту матрицу как матрицу перемещения, вращения и масштабирования. |
| ToString | Возвращает форматированную строку для этого массива. |
| TransformPlane | Возвращает плоскость, преобразованную в пространстве. |
| ValidTRS | Проверяет, является ли эта матрица действительной матрицей преобразования. |
Статические методы
| Метод | Описание |
|---|---|
| Frustum | Эта функция возвращает проекционную матрицу с просмотром фрустума, которая имеет близкую плоскость, определенную координатами, которые были переданы. |
| Inverse3DAffine | Вычисляет обратную матрицу 3D. |
| LookAt | Создайте матрицу "смотри на". |
| Ortho | Создайте ортогональную проекционную матрицу. |
| Perspective | Создайте матрицу перспективной проекции. |
| Rotate | Создает матрицу вращения. |
| Scale | Создает матрицу масштабирования. |
| Translate | Создает матрицу перевода. |
| TRS | Создает матрицу перемещения, вращения и масштабирования. |
Операторы
| Оператор | Описание |
|---|---|
| оператор * | Умножает две матрицы. |