今天在群里看見有個小伙在問Game視圖尋路時怎么畫線
正好前幾天寫了個尋路,而且自己也不知道具體怎么在尋路時畫線,所以決定幫幫他,自己也好學習一下
在百度查了一下資料,直接搜尋路畫路徑、尋路畫線......
我可不是伸手黨,我只是想看看別人是怎么實現的
結果什么都沒有搜到!!那就直接搜unity3d 畫線吧..... 果然很多資料!!
Debug.DrawLine;使用這個函數只能在 screen 中看見畫的線,在 game 中看不見
那我們要怎么在game中畫線呢
百度給我答案:LineRenderer(線渲染器)
然后查聖典:http://game.ceeger.com/Script/LineRenderer/LineRenderer.html
怎么用的自己看,我在這里就不多說了
ok,開始敲代碼咯
首先我們創建一個空gameobject,然后添加 Line Renderer 組件
屬性設置如下圖:
材質我是隨便拖的,無關緊要
這個時候我們雙擊剛才創建的 gameobject 以在 scene 視圖中查看
我們可以看見有一條線出現了,因為我材質的問題,我這里顯示的是橢圓形!!腦補一下線的樣子吧
我們在組件中設置的兩個坐標其實就是兩個點,兩點一線,就這樣生成了線。。。好像是廢話
好了,我們開始敲代碼吧,組件設置沒啥好說的
設置兩個變量
1 public Transform line;//就是我們剛才添加的 gameobject 2 private LineRenderer _lineRenderer;//儲存 gameobject 的 LineRenderer 組件
在 Start 方法中初始化 _lineRenderer
1 void Start () 2 { 3 _lineRenderer = line.GetComponent<LineRenderer>(); 4 }
最后我們在尋路后畫線
1 Vector3[] _path = Nav.path.corners;//儲存路徑 2 _lineRenderer.SetVertexCount(_path.Length);//設置線段數 3 for (int i = 0; i < _path.Length; i++) 4 { 5 _lineRenderer.SetPosition(i, _path[i]);//設置線段頂點坐標 6 }
就這么簡單,看看代碼,看不懂先去看我上文提到的手冊
由於我的項目中有很多無關尋路畫線的代碼,而且以上代碼比較簡單,我就不貼出完整代碼了
下面是測試結果:
本文鏈接:http://www.cnblogs.com/shenggege/p/4129405.html