任何一个模型都是由若干个网格面组成,而网格面由若干个三角面组成。下面我们就创建一个三角面。
创建一个空物体GameObject.添加MeshFilter组件和MeshRenderer组件。
示例代码如下:
- //三角形的三个顶点
- Vector3 v0 = new Vector3 (5, 0, 0);
- Vector3 v1 = new Vector3 (0, 5, 0);
- Vector3 v2 = new Vector3 (0, 0, 5);
- //三角形的三个顶点
- Vector3 v3 = new Vector3 (-5, 0, 0);
- Vector3 v4 = new Vector3 (0, -5, 0);
- Vector3 v5 = new Vector3 (0, 0, -5);
- //三角形的贴图比例
- Vector2 u0 = new Vector2 (0, 0);
- Vector2 u1 = new Vector2 (0, 5);
- Vector2 u2 = new Vector2 (5, 5);
- //三角形的贴图比例
- Vector2 u3 = new Vector2 (0, 0);
- Vector2 u4 = new Vector2 (0, 1);
- Vector2 u5 = new Vector2 (1, 1);
- //三角形的材质
- public Material mat;
- void Start ()
- {
- //获取MeshFilter组件
- MeshFilter mf = gameObject.GetComponent<MeshFilter> ()as MeshFilter;
- //网格对象
- Mesh mesh = mf.mesh;
- //网格的顶点
- mesh.vertices = new Vector3[]{ v0, v1, v2, v3, v4, v5 };
- //网格的贴图比例
- mesh.uv = new Vector2[]{ u0, u1, u2, u3, u4, u5 };
- //绘制三角形
- mesh.triangles = new int[]{ 0, 1, 2, 3, 4, 5 };
- //材质
- MeshRenderer mr = gameObject.GetComponent<MeshRenderer> ()as MeshRenderer;
- mr.material = mat;
- }