【Unity】開發日誌3——拖尾渲染 Trial Renderer
前言:
在之前用Unity做繪畫的過程中,我們實現了基本的繪畫模式,但是有一個很嚴重的問題就是:我們畫出來的都是Sphere,這樣子做非常佔用記憶體,這次就主要解決這個問題,我們用Trial Renderer來作我們的筆刷。
首次接觸Trial Renderer可以發現它可以做我們的筆刷,先來建立一個Trial Renderer:
1、 建立一個空的遊戲物件 Create Empty,命名為Brush;
2、 給Brush新增元件,點選Brush,在選單欄中Component > Effects > Trial Renderer;
3、 在Asset中新建一個材質Create > Material
4、 開啟Brush的Inspector中的Meterials選項前的小三角,把我們新建的材質Brush拖進去;
5、 在Scene檢視中移動Brush我們就可以看見拖尾效果了;
可以看出:只要移動帶有Trail Renderer這種Component的遊戲物件就會產生這種拖尾的軌跡,這非常適合作為我們的筆刷。
於是我們讓它和我們的滑鼠同步移動,這裡用到新的程式碼(以往我們都要自己做左邊運算,現在發現Unity中有自帶的座標轉換函式):
1、 建立一個C#指令碼,命名為Brush;
2、 在Update中寫入Vector3 Pos = Camera.main.ScreenToWorldPoint (
transform.position = Pos;
3、 儲存指令碼,之後指令碼拖給遊戲物件Brush,儲存Scene命名為Brush,之後按播放鍵進行測試;
4、 測試發現結果Brush的Position為(0,1,-10),原因是攝像機的投射方式沒有改變,把攝像機的投射方式改為orthographic,之後測試;
5、 現在發現可以在Scene中看到移動軌跡但是再Game檢視中無法看見,檢視Brush的座標可以看出原因是:遊戲物件Brush的z軸座標和Main Camera的z軸左邊一樣,所以Game檢視中無法看到,現在新增程式碼:Pos.z =
測試發現我們可以看到拖尾效果(如圖):
6、 之後新增滑鼠左鍵按鈕控制,程式碼為:
if (Input.GetMouseButton (0)) {
transform.position = Pos;
}
測試發現我們實現了,點選滑鼠左鍵畫畫的功能,但是不能分開畫;
時間問題,所以這節我只能寫到這裡,希望大家繼續關注我的部落格,我會定期更新部落格。