暫時我們先忽略Z軸(這樣在平面中看得更清楚),假設Z軸坐標都為0。假設游戲中有兩個軌跡點在動態的增加與改變,最后將這兩個點改變的軌跡拼接起來就是它們生成的面。如上圖所示,第一個點的軌跡是“ 3,4,5,6,7” 第二個點的軌跡是“2,1,10,9,8” 。這兩個點的長度是可變的,前提是他們兩個的數量必需完全一樣。接著,如下圖所示,我們將這些點兩兩相連起來,目前一共形成了8個三角形面(可根據兩個動態點的數量而確定整個網格面三角形面的數量)。最后我們將這8個三角形填充上同樣的顏色,就可以實現一個完整的立體網格面。
原理很簡單,就是這樣的我相信大家看到這里大家都能明白,接著我們就學習如何使用代碼來實現它。首先創建Unity工程,接著創建一個空的游戲對象,然后給該游戲對象綁定Mesh Filter組件 與 Mesh Renderer組件。
Mesh Filter組件:表示網格面,這個網格面是由我們使用代碼將所有三角形拼接起來生成的面。
Mesh Renderer組件:表示表示網格的渲染,可設置一個渲染的材質,它包括貼圖與顏色。
如下圖所示,我說說里面比較重要的屬性。Mesh Renderer中,Materials下拉列表中可設置網格模型的材質,此時我們設置了一個紅色的材質。 Mesh Filter:目前為None,也不用再編輯器中為它賦值,因為這個網格模型我們會在代碼中生成并且賦值。在下面就是方剛我們設置紅色的材質資源,Shader中設置了貼圖的屬性,目前是GUI/ TextShader。它表示這個材質的渲染級別在GUI上,就是優先級是最一層的。舉個例子無論在這個網格模型的前面繪制多少模型,它永遠都會在最前面顯示。就這個例子而言它的存在并不是必需的,其實Shader的選項還有很多,可透明、不可透明、鏡面、反射等等,后期我會向大家詳細道來。
OK,現在資源文件都已經準備完畢,下面我們學習如何來繪制一個三角形,從簡單的開始。。把下面的代碼綁定在攝像機對象當中。
[代碼]java代碼:
01 using UnityEngine; 02 using System.Collections.Generic; 03 using System; 04 05 public class Test : MonoBehaviour { 06 07新聞熱點
疑難解答