Unity NavMeshAgent 之 快速实现点击任意点寻路。导航在Un坡纠课柩ity游戏开发中很常用,Unity自带N锾攒揉敫avMeshAgent,轻松实现角色导航,本节介绍如何快速建立一个实现点击任意点,角色自动寻路的导航操作,具体如下
工具/原料
Unity
NavMeshAgent
NavMeshAgent 之 快速实现点击任意点自动导航寻路
1、打开Unity,新建一个空工程,具体如下图
2、在场景中新建一个“Cube”和“Plane”,并且调整好相机视角,便于观察,然后设置“Plane”为静态“Static”,具体如下图
3、选中“Plane”,然后通过“Window”-“Navigation”,打开“Navigation”窗口,在“Navigation”里选中“Bake”面板,点击右下角进行“B锾攒揉敫ake”烘焙,如果没有保存场景,会提示保存,烘焙完之后,“Plane”上会有蓝色图块,工程里面会多一个文件夹保存烘焙结果,具体如下图
4、选中“Cube”,添加一个“NavMeshAgent”组件,具体如下图
5、在工程中新建一个脚本“NavTest”,然后打开进行脚本编辑,具体如下图
6、在打开的“NavTest”脚本上编辑代码,首先设置“NavMeshAgent”导航代理变量,然后获得“Cube”上的导航代理赋给变量,最后在Update中,实时获取鼠标的点击,来设置导航代理的寻路目标,具体如下图
7、“NavTest”脚本具体蜣贺鱿柢代码如下:using UnityEngine;using UnityEngine.AI;public class NavTest : Mono蚱澄堆别Behaviour { private NavMeshAgent agent; // Use this for initialization void Start () { agent = GetComponent<NavMeshAgent>(); } // Update is called once per frame void Update () { RaycastHit hitInfo; if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hitInfo)) { agent.SetDestination(hitInfo.point); } } }}
8、脚本编译正确后,回到Unity界面,把脚本“NavTest”赋给“Cube”,具体如下图
9、运行场景,鼠标点击“Plane”任意一点,“Cube”都会自动导航寻路过去,具体如下图
10、到此,《Unity NavMeshAgent 之 快速实现点击任意点寻路》讲解结束,谢谢