1. 程式人生 > >【Unity】開發日誌3——拖尾渲染 Trial Renderer

【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

命名為Brush

4、 開啟BrushInspector中的Meterials選項前的小三角,把我們新建的材質Brush拖進去;

5、 Scene檢視中移動Brush我們就可以看見拖尾效果了;

可以看出:只要移動帶有Trail Renderer這種Component的遊戲物件就會產生這種拖尾的軌跡,這非常適合作為我們的筆刷。

於是我們讓它和我們的滑鼠同步移動,這裡用到新的程式碼(以往我們都要自己做左邊運算,現在發現Unity中有自帶的座標轉換函式):

1、 建立一個C#指令碼,命名為Brush

2、 Update中寫入Vector3 Pos = Camera.main.ScreenToWorldPoint (

Input.mousePosition); 

transform.position = Pos; 

3、 儲存指令碼,之後指令碼拖給遊戲物件Brush,儲存Scene命名為Brush,之後按播放鍵進行測試;

4、 測試發現結果BrushPosition為(01-10),原因是攝像機的投射方式沒有改變,把攝像機的投射方式改為orthographic,之後測試;

5、 現在發現可以在Scene中看到移動軌跡但是再Game檢視中無法看見,檢視Brush的座標可以看出原因是:遊戲物件Brushz軸座標和Main Cameraz軸左邊一樣,所以Game檢視中無法看到,現在新增程式碼:Pos.z = 

0;

測試發現我們可以看到拖尾效果(如圖):

6、 之後新增滑鼠左鍵按鈕控制,程式碼為:

if (Input.GetMouseButton (0)) {
            transform.position = Pos;
        } 

測試發現我們實現了,點選滑鼠左鍵畫畫的功能,但是不能分開畫;

時間問題,所以這節我只能寫到這裡,希望大家繼續關注我的部落格,我會定期更新部落格。