1. 程式人生 > >unity3d 網格渲染器Mesh的簡單使用

unity3d 網格渲染器Mesh的簡單使用

任何一個模型都是由若干個網格面組成,而網格面由若干個三角面組成。下面我們就建立一個三角面。

建立一個空物體GameObject.新增MeshFilter元件和MeshRenderer元件。

示例程式碼如下:

  1.     //三角形的三個頂點
  2.     Vector3 v0 = new Vector3 (5, 0, 0);
  3.     Vector3 v1 = new Vector3 (0, 5, 0);
  4.     Vector3 v2 = new Vector3 (0, 0, 5);
  5.   //三角形的三個頂點
  6.     Vector3 v3 = new Vector3 (-5, 0, 0);
  7.     Vector3 v4 = new Vector3 (0, -5, 0);
  8.     Vector3 v5 = new Vector3 (0, 0, -5);
  9.     //三角形的貼圖比例
  10.     Vector2 u0 = new Vector2 (0, 0);
  11.     Vector2 u1 = new Vector2 (0, 5);
  12.     Vector2 u2 = new Vector2 (5, 5);
  13.  //三角形的貼圖比例
  14.     Vector2 u3 = new Vector2 (0, 0);
  15.     Vector2 u4 = new Vector2 (0, 1);
  16.     Vector2 u5 = new Vector2 (1, 1);
  17. //三角形的材質
  18.     public Material mat;
  19.     void Start ()
  20.     {
  21.         //獲取MeshFilter元件
  22.         MeshFilter mf = gameObject.GetComponent<MeshFilter> ()as MeshFilter;
  23.         //網格物件
  24.         Mesh mesh = mf.mesh;
  25.        //網格的頂點
  26.         mesh.vertices = new Vector3[]{ v0, v1, v2, v3, v4, v5 };
  27.        //網格的貼圖比例
  28.         mesh.uv = new Vector2[]{ u0, u1, u2, u3, u4, u5 };
  29.        //繪製三角形
  30.         mesh.triangles = new int[]{ 0, 1, 2, 3, 4, 5 };
  31.        //材質
  32.         MeshRenderer mr = gameObject.GetComponent<MeshRenderer> ()as MeshRenderer;
  33.         mr.material = mat;
  34.     }