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的位置。

相关文章
相关标签/搜索