Описание
Стандартная матрица преобразования 4 x 4.
Матрица преобразования может выполнять произвольные линейные трехмерные преобразования (т. е. перемещение, вращение, масштабирование, сдвиг и т. д.) и преобразования перспективы с использованием однородных координат. Вы редко используете матрицы в сценариях; чаще всего используются Vector3, Quaternion и функциональность класса Transform. проще. Обычные матрицы используются в особых случаях, например при настройке нестандартной проекции камеры.
В Unity несколько Transform, Camera, Material, Graphics и GL используют Matrix4x4.
Матрицы в Unity имеют основной столбец; то есть позиция матрицы преобразования находится в последнем столбце, а первые три столбца содержат оси x, y и z. Доступ к данным осуществляется следующим образом: строка + (столбец*4). Матрицы могут быть
индексируются как двумерные массивы, но обратите внимание, что в таком выражении, как 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 |
Попытка получить кватернион вращения из этой матрицы. |
| this[int,int] |
Доступ к элементу в [строка, столбец]. |
| transpose |
Возвращает транспонирование этой матрицы (только для чтения). |
Публичные Методы
| GetColumn |
Получает столбец матрицы. |
| GetRow |
Возвращает строку матрицы. |
| MultiplyPoint |
Преобразует позицию по этой матрице (общая). |
| MultiplyPoint3x4 |
Преобразует позицию по этой матрице (быстро). |
| MultiplyVector |
Преобразует направление по этой матрице. |
| SetColumn |
Задает столбец матрицы. |
| SetRow |
Задает строку матрицы. |
| SetTRS |
Задает для этой матрицы матрицу перемещения, поворота и масштабирования. |
| ToString |
Возвращает форматированную строку для этой матрицы. |
| TransformPlane |
Возвращает трансформируемую в пространстве плоскость. |
| ValidTRS |
Проверяет, является ли эта матрица допустимой матрицей преобразования. |
Статические Методы
| Frustum |
Эта функция возвращает матрицу проекции с усеченной видимостью, у которой есть ближняя плоскость, определяемая переданными координатами. |
| Inverse3DAffine |
Вычисляет обратную трехмерную аффинную матрицу. |
| LookAt |
Создаёт матрицу просмотра. |
| Ortho |
Создаёт матрицу ортогональной проекции. |
| Perspective |
Создаёт матрицу перспективной проекции. |
| Rotate |
Создаёт матрицу вращения. |
| Scale |
Создаёт матрицу масштабирования. |
| Translate |
Создаёт матрицу перевода. |
| TRS |
Создаёт матрицу перемещения, поворота и масштабирования. |
Операторы