讓咱們來一塊兒粗步認識一下NavMesh的簡單使用this
首先咱們創建一個新場景,在新場景咱們建立 一個地形或者建立一個Plane,orm
而後在其上面用Cube或者其它的創建一些障礙物文檔
再建立本身須要爲其設置自動尋路的Cube,能夠爲它改個名字,咱們在這裏get
將其更名爲walkerit
再建立一個walker要自動到達的位置,建立一個Cube,更名爲endposition;io
準備工做作好了,讓我一塊兒來嘗試下NavMeshform
打開Navigation,Windows->Navigationclass
在Hierarchy層次窗口中將全部障礙物選上,在Navigation窗口,將Navigation Static打上勾,選擇一個Navigation Layer 層date
在Hierarchy層次窗口中將容許行進的地形或者Plane選上,作與上面同樣的操做,注意將容許行進和不容許行進的Navigation Layer設置爲不同im
選中walker爲其添加NavMeshAgent組件 Component-> Navigation ->NavMeshAgent
組件屬性就不介紹了,看得懂
惟一注意的就是在NavMesh Walkable中將不容許行進的NavigationLayer名字去除掉,將如這裏不容許行進的Navigation Layer是Not Walkable
NavMesh Walkable就不該該將此層選中
在Hierarchy中將容許行進或者不容許行進的物體選中,在Navigation窗口中,選中Bake烘焙
爲了讓其運動,咱們寫一個簡單的腳本,腳本內容以下
using UnityEngine;
using System.Collections;
public class Nav : MonoBehaviour {
// Use this for initialization
public Transform target;
private NavMeshAgent navmeshagent;
void Start () {
navmeshagent = gameObject.GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
navmeshagent.SetDestination(target.position);
}
}
腳本不作解釋,不懂的人查下文檔
將腳本拖拉到walker中,再將endposition拖拉到上述腳本的target;
最後運行,完成,你會發現walker會自動尋找路線移動到endposition的位置。