教学课件 15项目十五:寻路技术-导航寻路动画_第1页
教学课件 15项目十五:寻路技术-导航寻路动画_第2页
教学课件 15项目十五:寻路技术-导航寻路动画_第3页
教学课件 15项目十五:寻路技术-导航寻路动画_第4页
教学课件 15项目十五:寻路技术-导航寻路动画_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块三:制作游戏界面与动画特效项目十五:寻路技术—导航寻路动画UnityGameEngineUNITY模块三制作游戏界面与动画特效UGUI系统

——《迷宫寻宝》游戏界面设计动画系统——游戏动画制作地形引擎——游戏场景制作声光技术——声光特效项目十项目十一项目十二项目十三粒子系统——粒子特效项目十四寻路技术——导航寻路动画项目十五背包系统——物品拾取动画项目十六任务概述在游戏中,我们经常会遇到角色自行走到目的地上交任务、行走过程中主动避开障碍物或在指定的地盘中进行守卫等,这些依赖于Unity为我们提供的导航寻路技术,寻路设计需要使用人工智能技术,提前做好规划,以提供良好的用户体验,达到最佳效果。本项目,我们将介绍Unity中的寻路技术。行业PPT模板/hangye/学习目标011.掌握导航寻路相关组件和场景烘焙知识2.能够正确进行导航寻路动画的制作教学目标重难点重点:导航寻路动画的实现难点:导航寻路效果的控制项目实现02任务1:定点寻路1.布置游戏场景,场景中,红色和黄色小球代表游戏中的角色,浅蓝色的立方体为两个小球移动的目标点,两个深蓝色的Cube代表桥。2.为黄色的小球添加NavMeshAgent组件。制作步骤提示3.为黄色的小球添加fixedpoint脚本。usingUnityEngine.AI;publicclassfixedpoint:MonoBehaviour{publicGameObjecttarget;//声明游戏物体

privateNavMeshAgentagent;//声明导航网格代理器

voidStart(){agent=GetComponent<NavMeshAgent>();//获取导航网格代理器组件

agent.destination=target.transform.position;//设置角色移动的位置

}}项目实现02任务1:定点寻路4.将地面、桥、台阶都设置为静态物体。5.烘焙场景,此时黄色的小球可以移动到目标点附近。制作步骤提示6.为红色Cube添加OffMeshLink组件,Start处添加红色Cube,End处添加粉色Cube,分别代表小球飞行路线的起点和终点,此时,运行游戏,黄色小球可以通过红色方块跳跃到台阶上移动到目标物体处。项目实现02任务1:定点寻路7.同理,为红色的小球添加同样的操作,红色小球和黄色小球一样都能达到目标点,且会自动寻找最短路径。8.制作红色小球必须通过上面的桥进行行走。在Navigation视图中,设置两个桥的名字分别为frontbridge和backbridge。制作步骤提示9.选中上面的桥,在NavigationArea处,设置导航区域为frontbridge,同理,设置下面的桥导航区域为backbridge。项目实现02任务1:定点寻路10.选中红色小球,在Inspector视图中找到NavMeshAgent组件,在AreaMask处将backbridge取消。11.同理,可为黄色小球设置导航区域为backbridge,此处若不设置,则黄色小球会自动寻找最短路线。12.设置好后,在Navigation视图中重新对路网进行烘焙,运行游戏,可以看到两个小球都可以按照规划好的路线行走。制作步骤提示项目实现02任务2:自动寻路1.布置寻路场景。2.

利用Animation动画为中间的粉色Cube制作旋转动画效果。制作步骤提示3.将地板和楼梯设置为静态物体。4.为中间的蓝色Cube和旋转的粉色Cube添加NavMeshObstacle组件。项目实现02任务2:自动寻路5.为红色小球添加NavMeshAgent(导航网格代理器)组件。6.为红色小球添加AINavigation脚本。制作步骤提示usingUnityEngine.AI;publicclassAINavigation:MonoBehaviour{publicGameObjecttarget;privateNavMeshAgentagent;voidStart(){agent=GetComponent<NavMeshAgent>();}voidUpdate(){if(Input.GetMouseButton(0))//判断是否按下鼠标

{Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);

RaycastHithit;if(Physics.Raycast(ray,outhit))//如果检测到射线,就将物体移动到hit的位置

{agent.destination=hit.point;}}}}项目实现02任务2:自动寻路7.烘焙场景,此时,小球可以正常移动但无法移动到另外一侧地面上。8.在场景中添加两个圆柱体。制作步骤提示9.为小球一侧的圆柱体添加OffMeshLink(分离网格链接)组件,并将Start和End对应的游戏物体添加上。10.取消两个圆柱体的渲染。11.再次烘焙场景,运行游戏,小球自动寻路的动画制作完成。项目实现02任务3:固定寻路1.布置场景,其中,黄色的Cube相当于是游戏中的NPC,需要在一定区域内进行寻路,红色的小球用来标识NPC寻路的路线。2.选中平面,在Inspector视图中,勾选Static,将其设置为静态物体。制作步骤提示3.选中Cube,在Inspector视图中单击AddComponent按钮,为其添加NavMeshAgent组件。项目实现02任务3:固定寻路4.为Cube添加fixedNavigation脚本。5.单击Inspector视图右侧的锁头图标,将该视图锁定,将Cube添加到脚本Na位置处,将所有的Point选中拖动到TargetPos处。6.烘焙场景,可以实现按指定顺序寻路效果。制作步骤提示usingUnityEngine.AI;publicclassfixedNavigation:MonoBehaviour{publicNavMeshAgentna;publicTransform[]targetPos;//目标点

publicintpointIndex;//数组下标

voidStart(){na.SetDestination(targetPos[0].position);//让代理器移动到第一个目标点的位置

}voidUpdate(){if(na.remainingDistance<0.5f)//当角色距离目标点距离<0.5,让角色移动到下一个目标点

{pointIndex=(pointIndex+1)%targetPos.Length;na.SetDestination(targetPos[pointIndex].position);}}}项目实现02任务3:固定寻路7.制作固定区域寻路动画,修改上面的脚本。8.运行游戏,角色在目标点区域内进行随机寻路。制作步骤提示usingUnityEngine.AI;publicclassfixedNavigation:MonoBehaviour{publicNavMeshAgentna;publicTransform[]targetPos;publicintrandom_pointIndex;//随机下标

voidStart(){na.SetDestination(targetPos[0].position);}voidUpdate(){if(na.remainingDistance<0.5f){random_pointIndex=Random.Range(0,targetPos.Length);//获取随机下标

na.SetDestination(targetPos[random_pointIndex].position);//让角色移动到随机下标所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论