Version: 2017.3

Matrix4x4

struct in UnityEngine

切换到手册

描述

标准 4x4 变换矩阵。

变换矩阵可以使用齐次坐标执行任意线性 3D 变换 (即平移、旋转、缩放、扭曲等)和透视变换。脚本中很少使用矩阵;通常 使用 Vector3QuaternionTransform 类的功能会更加简单直接。普通矩阵用于特殊情况, 如设置非标准摄像机投影。

参阅任何图形教材了解变换矩阵的深入说明。

在 Unity 中,Matrix4x4 由几个 TransformCameraMaterialGL 函数使用。

Unity 中的矩阵是列主序的。数据访问方式如下:行 + (列*4)。矩阵可以 像 2D 数组一样进行索引,但是在 mat[a, b] 这类表达式中,a 引用行索引,而 b 引用 列索引(请注意,这是笛卡尔坐标相反的方式)。

静态变量

identity返回单位矩阵(只读)。
zero返回所有元素都设置为零的矩阵(只读)。

变量

decomposeProjection此属性采用投影矩阵,返回定义投影锥体的六个平面坐标。
determinant矩阵的行列式。
inverse此矩阵的逆矩阵(只读)。
isIdentity是否为单位矩阵?
lossyScale尝试从矩阵获取缩放值。
rotation尝试从此矩阵获取旋转四元数。
this[int,int]访问 [row, column] 处的元素。
transpose返回此矩阵的转置(只读)。

公共函数

GetColumn获取矩阵的某一列。
GetRow返回矩阵的某一行。
MultiplyPoint按此矩阵变换位置(普通)。
MultiplyPoint3x4按此矩阵变换位置(快速)。
MultiplyVector按此矩阵变换方向。
SetColumn设置矩阵的某一列。
SetRow设置矩阵的某一行。
SetTRS将此矩阵设置为平移、旋转和缩放矩阵。
ToString对于此矩阵,返回整齐格式化的字符串。
TransformPlane返回在空间中变换的平面。
ValidTRS检查此矩阵是否为有效变换矩阵。

静态函数

Frustum此函数返回一个投影矩阵,其视锥体的近平面由传入的坐标定义。
LookAt给定源点、目标点和向上矢量,计算一个变换矩阵,它对应于从源查看目标的摄像机,以便右侧矢量与向上矢量垂直。
Ortho创建正交投影矩阵。
Perspective创建透视投影矩阵。
Rotate创建旋转矩阵。
Scale创建缩放矩阵。
Translate创建平移矩阵。
TRS创建平移、旋转和缩放矩阵。

运算符

operator *使两个矩阵相乘。