Unity3D_(网格导航(Navigation Mesh))简单物体自动寻路+1

NavMesh(导航网络)是3D游戏世界中用于实现动态物体自动寻路的一种技术,它将游戏场景中复杂的结构组织关系简化为带有一定信息的网格,进而在这些网格的基础上通过一系列的计算来实现自动寻路。

步骤:
1,打开NavMesh窗口;
2,设置障碍,Bake一下;
3,设置寻路者,和目地坐标(可以用鼠标点击代替,也可以直接固定目标);
4,以上3步完成今天的教程!

下面通过一个简单的Sample来介绍NavMesh的应用:

1.在Scene中新建三个Cube,如下图摆放。
Unity3D_(网格导航(Navigation Mesh))简单物体自动寻路+1_第1张图片2.选中上图三个Cube,并在Inspector面板中选中为静态(static)下拉选项的Navigation Static,如下图。

Unity3D_(网格导航(Navigation Mesh))简单物体自动寻路+1_第2张图片3.依次选择菜单栏中的Windows - Navigation ,打开后面板如下。Unity3D_(网格导航(Navigation Mesh))简单物体自动寻路+1_第3张图片单击该面板右下角的Bake按钮,即可生成导航网格,下图为已生成的导航网格。Unity3D_(网格导航(Navigation Mesh))简单物体自动寻路+1_第4张图片4.下面就可以让一个运动体根据一个导航网格运动到目标位置。

首先新建一个Cube为目标位置,起名TargetCube。然后创建一个capsule(胶囊)运动体,为该胶囊挂在一个Nav Mesh Agent(Component - Navigation - Nav Mesh Agent);最后写一个脚本就可以实现自动寻路了。脚本如下:

using UnityEngine;
using System.Collections;

public class Run : MonoBehaviour {

public Transform TargetObject = null;

void Start () {
	if (TargetObject != null)
	{
		GetComponent().destination = TargetObject.position;
	}
} 
void Update () {

}
}

脚本新建完成后挂载到胶囊体上,然后将TargetCube赋予给胶囊体的Run脚本,运行场景,如下图,胶囊体会按照箭头的方向运动到Cube位置。Unity3D_(网格导航(Navigation Mesh))简单物体自动寻路+1_第5张图片
这样一个简单的自动寻路就完成了,如果要更精细的寻路,或要实现上坡,钻"桥洞"等,可根据下面介绍的相关参数进行调节。
下一篇讲解NavMesh里的参数含义!

你可能感兴趣的:(UnityAI寻路,unity3d,Ai,寻路)