** C#中,三种变换矩阵分为三种:缩放,平移,以及旋转。**
其中旋转是三种变化矩阵中最复杂的一种
用数学角度分析:
这是实现物体绕x轴旋转一定角度
这是实现物体绕y轴旋转一定角度
这是实现物体绕z轴旋转一定角度
言归正传,C#中为我们的矩形运算做出了规则,所以我们只需要写出Matrix4x4这个规定的矩形之后点出之后的一系类,旋转,平移,缩放的应用,旋转可以使用Euler Quaternion 以及Matrix4x4(矩阵旋转),但Matrix4x4是最不容易出现错误的,下面用代码来给大家解释这个Matrix4x4旋转的具体应用。
public Vector3 Position;
public Vector3 Euler;
public Vector3 Scale;
public MeshFilter Mesh;
Vector3[] Old;
Vector3[] New;
void Start()
{
Scale = new Vector3(1, 1,1);//规定大小为一
Mesh = GetComponent<MeshFilter>();//获取组件
Old = Mesh.mesh.vertices;//获取顶点数据
New = new Vector3[Old.Length];//给数组赋值一个长度
}
void Update()
{
Quaternion rotation = Quaternion.Euler(Euler.x, Euler.y, Euler.z);//欧拉角转换为四元数,赋值
Matrix4x4 m = Matrix4x4.TRS(Position, rotation, Scale);//设置 平移 大小 缩放
for (int i = 0; i < Old.Length; i++)//将顶点数据给新数组
{
New[i] = m.MultiplyPoint3x4(Old[i]);//将矩阵应用于各各顶点
}
Mesh.mesh.vertices = New;//将变化后的顶点返回给物体
}