unity3d 網格渲染器Mesh的簡單使用
阿新 • • 發佈:2018-12-26
任何一個模型都是由若干個網格面組成,而網格面由若干個三角面組成。下面我們就建立一個三角面。
建立一個空物體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;
- }