U3D Navigation

讓咱們來一塊兒粗步認識一下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的位置。

相關文章
相關標籤/搜索