Unity自动寻路Navmesh之入门.doc

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

? Unity手游之路 自动寻路Navmesh之入门 现在的大部分mmo游戏都有了自动寻路功能。点击场景上的一个位置,角色就会自动寻路过去。中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点。使用Unity来开发手游,自动寻路可以有很多种实现方式。第一种比较传统的是使用A星寻路,它是一种比较传统的人工智能算法,在游戏开发中比较常用到。大部分的页游和端游都用到这种技术。在Unity游戏也可以用这种技术,Asset Store上面已经有相关的组件了,感兴趣的同学可以自己去了解。我在后面有机会再来详细介绍了。今天我们来学习Unity官方内置的寻路插件-Navmesh。由于内容比较多,我们将分几次来系统学习。今天先通过学习一个最简单的例子来入门。 (转载请注明原文地址/janeky/article/details/1座机电话号码) 实例 我们要实现一个功能:点击场景中的一个位置,角色可以自动寻路过去。角色会绕过各种复杂的障碍,找到一条理论上”最短路径“。 步骤 1.创建地形 2.添加角色 3.创建多个障碍物,尽量摆的复杂一点,来检查Navmesh的可用性和效率。 4.选中地形,在Navigation窗口中,设置Navigation Static 5.依次选中障碍物,在avigation窗口中,设置Navigation Static 7.Navigation窗口中,选择Bake(烘焙)界面,点击Bake按钮,进程场景烘焙,就可以烘焙出寻路网格了 8.为角色添加NavMeshAgent组件。Component- Navigation- Nav Mesh Agent 9.为角色新增一个脚本PlayerController.cs,实现点击目标,自动寻路功能 [csharp]?view plaincopy using?UnityEngine;?? using?System.Collections;?? //Author:ken@?? public?class?PlayerController?:?MonoBehaviour private?NavMeshAgent?agent; void?Start //获取组件 agent? ?GetComponent ; void?Update //鼠标左键点击 if? Input.GetMouseButtonDown 0 //摄像机到点击位置的的射线 Ray?ray? ?Camera.main.ScreenPointToRay Input.mousePosition ; RaycastHit?hit; if? Physics.Raycast ray,?out?hit //判断点击的是否地形 if? !.Equals Terrain return; //点击位置坐标 Vector3?point? ?hit.point; //转向 transform.LookAt new?Vector3 point.x,?transform.position.y,?point.z ; //设置寻路的目标点 agent.SetDestination point ; //播放动画,判断是否到达了目的地,播放空闲或者跑步动画 if? agent.remainingDistance? ?0 animation.Play idle ; else animation.Play run ; 完成了,可以看看效果: 相关知识 1.角色身上的Nav Mesh Agent 组件 Radius 半径: 代理的半径(仅用于寻路目的,可以跟实际对象的半径大小不一样,一般比实际对象的半径大)。 Speed 速度: 代理可以周游世界,走向它的目的地的最大移动速度。 Acceleration 加速度: 最大加速度。 Angular Speed 角速度: 最高转速(度/秒)。 Stopping distance 制动距离:制动距离。到目的地的距离小于这个值,代理减速。 Auto Traverse OffMesh Link 自动遍历OffMesh链接:自动移动并关闭OffMeshLinks Auto Repath 自动重新寻路:如果现有的部分已失效,获得新的路径。 Height 高度:代理的高度(用于调试图形)。 Base offset 基本偏移:碰撞几何体相对于实际几何体垂直的偏移。 Obstacle Avoidance Type 障碍躲避类型 :躲避的质量水平。 NavMesh Walkable 导航网格行走:指定代理可以遍历的导航网格层类型。这个参数很有用,在接下来的实例中可以用到。 2.障碍物一定要有Mesh Render,用于烘焙寻路网格。 总结 这个实例可以很简单的让我们学会如何最基本的使用自动寻路组件Nav。但是,这个

文档评论(0)

sb9185sb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档