Unity NavMeshAgent 之 快速实现点击任意点寻路

 时间:2024-10-13 00:46:12

Unity NavMeshAgent 之 快速实现点击任意点寻路。导航在Un坡纠课柩ity游戏开发中很常用,Unity自带N锾攒揉敫avMeshAgent,轻松实现角色导航,本节介绍如何快速建立一个实现点击任意点,角色自动寻路的导航操作,具体如下

工具/原料

Unity

NavMeshAgent

NavMeshAgent 之 快速实现点击任意点自动导航寻路

1、打开Unity,新建一个空工程,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路

2、在场景中新建一个“Cube”和“Plane”,并且调整好相机视角,便于观察,然后设置“Plane”为静态“Static”,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路

3、选中“Plane”,然后通过“Window”-“Navigation”,打开“Navigation”窗口,在“Navigation”里选中“Bake”面板,点击右下角进行“B锾攒揉敫ake”烘焙,如果没有保存场景,会提示保存,烘焙完之后,“Plane”上会有蓝色图块,工程里面会多一个文件夹保存烘焙结果,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路
Unity NavMeshAgent 之 快速实现点击任意点寻路

4、选中“Cube”,添加一个“NavMeshAgent”组件,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路

5、在工程中新建一个脚本“NavTest”,然后打开进行脚本编辑,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路

6、在打开的“NavTest”脚本上编辑代码,首先设置“NavMeshAgent”导航代理变量,然后获得“Cube”上的导航代理赋给变量,最后在Update中,实时获取鼠标的点击,来设置导航代理的寻路目标,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路

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”,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路

9、运行场景,鼠标点击“Plane”任意一点,“Cube”都会自动导航寻路过去,具体如下图

Unity NavMeshAgent 之 快速实现点击任意点寻路

10、到此,《Unity NavMeshAgent 之 快速实现点击任意点寻路》讲解结束,谢谢

  • 无烬星河攻略
  • 证券公司如何合规开展营销工作
  • 小恩爱APP怎么绑定QQ号
  • 党员教师被打怎么办
  • 用制图软件绘制大熊猫的简笔画(三)
  • 热门搜索
    植树节手抄报一等奖 六一儿童节手抄报图 快乐成长手抄报 心理健康手抄报模板 有关安全的手抄报 讲普通话写规范字手抄报 庆祝六一手抄报 保护野生动物手抄报 母亲节手抄报简单漂亮 数学手抄报的内容