NavMesh(导航网格) 是3D游戏世界中主动寻路的一种技术,如果你想让游戏人物能自动绕开障碍物到达目的地.那你就来学习下

Navigation导航技术吧O(∩_∩)O~

首先创建一个项目创建Panel和Cube游戏物体

Unity Navigation自动寻路-LMLPHP

你需要把地形烘焙成导航网格 (蓝色区域说明可走的) 步骤如下:

1.选中Panel和Cube的static属性打上√

2.选中Panel和Cube打开菜单栏Window->Navigation,点击Bake即可看到地形变颜色了

Unity Navigation自动寻路-LMLPHPUnity Navigation自动寻路-LMLPHP

我们需要创建一个游戏物体来控制他在地图上根据鼠标点击来回走动,创建一个球体并且添加NavMeshAgent组件

Unity Navigation自动寻路-LMLPHP

再写一个MyMove的脚本挂到球物体身上:

using UnityEngine;
using System.Collections; public class MyMove : MonoBehaviour { private NavMeshAgent aget; void Awake()
{
aget = GetComponent<NavMeshAgent>()
} public void Update()
{
if(Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit; if (Physics.Raycast(ray, out hit, 1000))
{
aget.destination = hit.point;
}
}
}
}

效果图如下:

Unity Navigation自动寻路-LMLPHP

05-11 12:55