第 章 导航系统.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

LOGO“”“”LOGO

第8章导航系统

赵艳妮导航系统项目案例——自动寻路项目案例——障碍物绕行Unity导航系统游戏开发者都必须打造自己的寻路系统,特别是基于节点系统的寻路非常繁琐。在基于节点的寻路系统中,必须手动地把AI使用的点在两者之间进行导航。Unity不仅做导航功能,还使用了导航网格(Navigationmeshes),这比手动放置节点更有效率而且更流畅。更重要的是,还可以一键重新计算整个导航网格,彻底摆脱了手动修改导航节点的做法。设置NavMesh在Hierarchy视图中选中除了目标和主角的场景中游戏对象,在Inspector窗口中点击Static下拉菜单,在下拉菜单中勾选NavigationStatic即可。烘焙点击菜单Window→Navation按钮,打开导航窗口,点击右下角的Bake(烘焙)按钮即可。设置导航代理导航代理(NavigationAgent)可以理解为去寻路的主体。在导航网格生成之后,给游戏对象添加了一个NavMeshAgent组件。导航系统项目案例——自动寻路项目案例——障碍物绕行案例构思使用Unity开发游戏,自动寻路可以有很多种实现方式。第一种比较传统的是使用A星寻路,它是一种比较传统的人工智能算法,在游戏开发中比较常用到。另外,Unity官方内置的寻路插件-Navmesh也可以实现自动寻路功能,本案例旨在通过一个简单的3D场景漫游实现Navmesh自动寻路插件的使用。案例设计本案例计划在Unity内创建一个简单的3D场景,场景内有各种障碍,通过Navmesh插件实现自动寻找到目标位置案例实施Step1:新建3D场景,将其命名为Navation。其中,胶囊体用作动态移动的对象,球体作为导航的目标。Step2:选中场景中所有除了sphere和cylinder以及摄像机、直线光以外的所有物体,点击Inspector面板中右上角的Navationstatic,成为静态物体,并设置成NavigationStatic静态类型。Step3:依次选择菜单栏中的Windows→Navigation。Step4:单击该面板右下角的Bake按钮,即可生成导航网格。案例实施Step5:下面就可以让一个胶囊体根据一个导航网格运动到目标Sphere位置。点击Component→Navigation→NavMeshAgent为该胶囊挂在一个NavMeshAgent()。Step6:最后写一个脚本就可以实现自动寻路了,创建C#脚本。Step7:脚本新建完成后挂载到胶囊体上,然后将Sphere赋予给胶囊体的Navation脚本,运行场景。障碍物一般来说,不可攀爬的NavMesh都被视为障碍物(NavMeshObstacle),也可以直接将物体设为障碍物,即可以为游戏对象添加NavMeshObstacle组件。有别于普通的NavMesh,NavMeshObstacle是一种不需要烘焙的障碍物,形状可以选择为立方体或是胶囊体。导航系统项目案例——自动寻路项目案例——障碍物绕行案例构思在自动寻路过程中,往往会遇到障碍物,如果在寻路过程中遇到障碍物要怎样解决呢?Unity官方内置的寻路插件Navmesh完美的解决了这个问题,本案例通过一个简单的障碍设置场景,实现自动寻路中障碍物绕行功能。案例设计本案例计划在Unity内创建一个障碍设置场景,场景内有一个Cube用来充当障碍物,通过Navmesh插件实现障碍物自动绕行效果。案例实施Step1:点击File→SaveSceneas,将Navation场景另存为Obstacle场景。Step2:点击GameObject→3D→Cube新建一个障碍物,将其仿放置在主角的前方,并赋予黑色材质。Step3:点击Component→Navigation→NavMeshObstacle添加NavMeshObstacle组件。Step4:点击play按钮进行测试,可以发现主角会绕过黑色立方体并到达终点。本章小结本章主要介绍了如何使用Unity的导航系统,涵盖了导航网格、导航代理、障碍物等知识点,通过实例可以很简单的学会如何最基本的使用自动寻路组件Nav。习题1.简述NavMesh的设置方法。2.简述NavMeshAgent属性参数的使用方法。3.简述寻路过程中路网烘焙过程。4.对于寻路过程中的障碍物绕行应该怎样处理?5.NavMeshAgent组件的代理器移动到给定目标点需要利用哪个函数?该函数有几个参数?其含义分别是什么?

文档评论(0)

vermonth155-2娟 + 关注
实名认证
内容提供者

专注ppt课件

版权声明书
用户编号:8046135067000064

1亿VIP精品文档

相关文档