unity自帶尋路組件navigation使用記錄(一)最菜鳥

        從今天開始,在博客上對自己學習編程和學習製作遊戲的過程加以記錄,以幫助自己學習和進步。由於初學,記錄會比較零散隨性,不夠系統,不夠專業,很多時候常常是雲裏霧裏的。我希望自己在學習大神方法的同時,能針對自己情況進行有重點的記錄。必要時會註明轉載和引

       今天試着用unity自帶尋路組件navigation做一個菜鳥尋路功能,使用的“尋路場景”是一組現成場景,尋路物體是一個圓柱,尋路目標是出口處一個空物體。

步驟如下:

       1、選中場景(希望烘焙尋路導航網絡的部分),點選Inspector選項卡——Static右下拉三角——勾選Navigation Static;

       2、點選  菜單Window——Navigation—>打開Navigation選項卡;點選右下角“Bake”,烘焙出導航網絡,尋路物體將會在這個導航網絡上尋路。見圖中藍底區域。

       3、在尋路物體(此處爲圓柱體)上,掛兩個東西,第一個是Add Component——Navigation——Nav Mesh Agent。

第二個是一個名爲“Monster”的腳本。在腳本里實現尋路功能的相關代碼是:

public class Monster : MonoBehaviour {
    public Transform TargetObject = null;
    void Start () {
        if (TargetObject != null)
        {
            GetComponent<NavMeshAgent>().destination = TargetObject.position;
        }

    }

    上面語言中,首先那個public transform TargetObject=null;表示創立被尋路物體,其中的public是創立了一個對外的口,需要將“被尋路的物體”掛到這個口中。被尋路物體的類型就是“transform ”,名字叫TargetObject,將目標掛到這裏才能實現TargetObject對應到實際的物體上。如下圖:

    就是說掛到尋路物體上的腳本上得掛目標物體。

    補充內容1:如何改變物體尋路移動速度什麼的呢?在物體添加的“Nav Mesh Agent”組件參數面板上上可以設置。

         面板上,Base Offset表示碰撞模型和實體模型之間的垂直偏移量,改變數值看上去模型所在高度會變,具體功能有待探索;Angular Speed表示轉彎角速度,Auto Repath表示因爲某些原因中斷後是否重新開始尋路。Obstacle Avoidance Type表示障礙躲避類型,None選項爲不躲避障礙,等級越高,躲避效果越好,同時消耗的性能越多。









    




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章