想知道u3d矩阵各个元素的存储方式,所以测试了一下
Matrix4x4 m = Matrix4x4.TRS(new Vector3(1, 2, 3), Quaternion.Euler(0, 0, 30), new Vector3(1, 1, 1));
for (int i = 0; i < 4; i++)
{
for (int j = 0; j<4; j++)
{
Debug.Log(m[i, j]);
}
}
for (int i = 0; i < 16; i++)
{
Debug.Log(m[i]);
}
结果输出 0.866 -0.5 0 1 0.5 0.866 0 2 0 0 1 3 0 0 0 1
0.866 0.5 0 0 -0.5 0.866 0 0 0 0 1 0 1 2 3 1
从输出可以看到unity的矩阵采用矩阵左乘法,及向量用列向量表示, 也正是因为采用列向量表示, 矩阵的16个元素前面是个是第一列,然后是第二列,第三列和第四列。
时间: 2024-10-27 07:34:52