
暫時我們先忽略Z軸(這樣在平面中看得更清楚),假設(shè)Z軸坐標(biāo)都為0。假設(shè)游戲中有兩個軌跡點(diǎn)在動態(tài)的增加與改變,最后將這兩個點(diǎn)改變的軌跡拼接起來就是它們生成的面。如上圖所示,第一個點(diǎn)的軌跡是“ 3,4,5,6,7” 第二個點(diǎn)的軌跡是“2,1,10,9,8” 。這兩個點(diǎn)的長度是可變的,前提是他們兩個的數(shù)量必需完全一樣。接著,如下圖所示,我們將這些點(diǎn)兩兩相連起來,目前一共形成了8個三角形面(可根據(jù)兩個動態(tài)點(diǎn)的數(shù)量而確定整個網(wǎng)格面三角形面的數(shù)量)。最后我們將這8個三角形填充上同樣的顏色,就可以實現(xiàn)一個完整的立體網(wǎng)格面。

原理很簡單,就是這樣的我相信大家看到這里大家都能明白,接著我們就學(xué)習(xí)如何使用代碼來實現(xiàn)它。首先創(chuàng)建Unity工程,接著創(chuàng)建一個空的游戲?qū)ο螅缓蠼o該游戲?qū)ο蠼壎∕esh Filter組件 與 Mesh Renderer組件。
Mesh Filter組件:表示網(wǎng)格面,這個網(wǎng)格面是由我們使用代碼將所有三角形拼接起來生成的面。
Mesh Renderer組件:表示表示網(wǎng)格的渲染,可設(shè)置一個渲染的材質(zhì),它包括貼圖與顏色。
如下圖所示,我說說里面比較重要的屬性。Mesh Renderer中,Materials下拉列表中可設(shè)置網(wǎng)格模型的材質(zhì),此時我們設(shè)置了一個紅色的材質(zhì)。 Mesh Filter:目前為None,也不用再編輯器中為它賦值,因為這個網(wǎng)格模型我們會在代碼中生成并且賦值。在下面就是方剛我們設(shè)置紅色的材質(zhì)資源,Shader中設(shè)置了貼圖的屬性,目前是GUI/ TextShader。它表示這個材質(zhì)的渲染級別在GUI上,就是優(yōu)先級是最一層的。舉個例子無論在這個網(wǎng)格模型的前面繪制多少模型,它永遠(yuǎn)都會在最前面顯示。就這個例子而言它的存在并不是必需的,其實Shader的選項還有很多,可透明、不可透明、鏡面、反射等等,后期我會向大家詳細(xì)道來。

OK,現(xiàn)在資源文件都已經(jīng)準(zhǔn)備完畢,下面我們學(xué)習(xí)如何來繪制一個三角形,從簡單的開始。。把下面的代碼綁定在攝像機(jī)對象當(dāng)中。
[代碼]java代碼:
01 using UnityEngine; 02 using System.Collections.Generic; 03 using System; 04 05 public class Test : MonoBehaviour { 06 07新聞熱點(diǎn)
疑難解答
圖片精選