1、创建一个画三角形的脚本:
using UnityEngine;
using System.Collections;
public class Triangle : MonoBehaviour
{
private Mesh mesh;
public Vector3[] vertices;
public int[] triangle;
private void Start()
{
mesh = new Mesh();
mesh.vertices = vertices;
mesh.triangles = triangle;
GetComponent<MeshFilter>().mesh = mesh;
}
}
2、创建一个空物体,将脚本挂载上去:
3、运行结果:
旋转scene的,alt+鼠标左键,看到上图的三角形。
4、使用矩阵,平移该三角形。
代码:
using UnityEngine;
using System.Collections;
public class MyTransform : MonoBehaviour
{
public Matrix4x4 matrix; //平移矩阵
public Vector4 v; //临时存储矩阵变换之后的点
public Vector4 startPos; //物体初始位置
public float x = 1; //x轴进行平移,在Inspector面板可以拖动
/// <summary>
/// 记录初始位置
/// </summary>
private void Start()
{
startPos = new Vector4(transform.position.x, transform.position.y, transform.position.z, 1);
}
/// <summary>
/// Update中平移
/// </summary>
private void Update()
{
MyTranslate();
}
/// <summary>
/// 平移函数
/// </summary>
private void MyTranslate()
{
matrix = Matrix4x4.identity; //单位矩阵
matrix.m03 = x; //x平移量可以在Inspector面板拖动
matrix.m13 = 4; //y轴平移量
matrix.m23 = 5; //z轴平移量
v = matrix * startPos;
transform.position = new Vector3(v.x, v.y, v.z);
}
}
5、平移矩阵
比如点:(0,0,0)经过矩阵平移得到: