Описание
Стандартная матрица преобразования 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 |
Создаёт матрицу перемещения, поворота и масштабирования. |
Операторы