Unity导航 (寻路系统Nav Mesh Agent)

第一种 简单寻路  地面接触到的。到达目标点不用跳跃能够一直走路到达。

场景视图中简单搭设几个物体。如图1

胶囊体为寻路者,黄球为目标点 红地板,绿色障碍物。

现将地板以及障碍物选中 在检视面板设置静态为Navigation Static 如图2

然后菜单栏选择窗口 Window –Navigation

然后选择All—Bake烘焙如图

有三个页面参数可以调节烘焙效果,参数具体参照圣典解释。

注意 胶囊体和目标物都要烘焙在蓝色格子里面。否则不能实现,可以调节第二个页面里的参数调节烘焙大小。

然后给胶囊体添加导航组件

菜单栏Component—Navigation-Nav Mesh Agent

组件参数详情参见圣典.

然后给胶囊体添加代码,代码内容如图

aa即为目标物。在检视面板将球给aa。运行即可实现简单寻路。如图

第二种寻路   不连续,可以跳跃的寻路

先搭设简单场景 如图   如果跳跃必须加三个跳板如图长条白板

将地面和高台(绿色)一起设置为Navigation Static

给中间跳板加一个组件 Component—Navigation—Off Mesh Link   其中有几个属性  start和end  这就是起跳位置和落地位置,将两个跳板用鼠标拖拽上即可。胶囊体添加寻路组件和第一种一样。添加脚本。脚本一样。所有组件选择完毕后最后选择烘焙

烘焙时 All 下面两个属性都要选中。

如图 烘焙时有时会出现上图有个圆圈位置未烘焙上,原因是胶囊体进入地面太多。可以再将胶囊体移动位置至蓝色网格上即可 运行即可实现。以上步骤落下一步该系统便不能实现。 细心即可。

Agent  Radius  代理半径 半径越小生成网格的面积越大,也越靠近静态物体的边缘。

Agent Height  代理高度

Max Slope 物体抬升台阶的高度

Drop Height 允许的最大下落距离

Jump Height 允许的最大跳跃距离

Radius  代理逃避半径  Height 代理经过障碍物下方目的高度

Base Offset  偏移距离

Steering   操作 指导

Speed   代理最大移动速度   Angular Speed   角速度

Acceleration 最大加速度   Stopping Distance  停止时和目标的距离(距离目标多少时停下)

Auto Braking  该代理是否自动制动去避免超过目的点

obstacle avoidance 故障排除

Quality  质量   Priority  优先级

Path Finding   路径寻找中……

Auto Traverse Off Mesh Link  该代理是否自动穿过Off Mesh Links?

Off-mesh连接用于连接不相交区域的导航网格。通常,当该属性设置为true时,角色应该有能力自动通过或者穿过连接。但是,在需要特殊控智移动的时候它也可以被设置为false。

Auto Repath  自动更新路径(例如目标位置改变,需要重新更新路径)

Area Mask 区域遮挡  (代理的行动区域,能在什么地方走。默认Everthing 任何地方)

时间: 2024-10-11 22:08:48

Unity导航 (寻路系统Nav Mesh Agent)的相关文章

【Unity3D】自动寻路(Nav Mesh Agent组件)

1.首先添加场景模型 2.为场景模型(寻路路径)添加NavMesh渲染,操作:Windows->Navigation->勾选Navigation Static选项->不勾选Generate选项->Navigation Area选为Walk able->Back栏调整Agent Radius参数->Bake按钮完成寻路渲染 3.为要移动物体添加Nav Mesh Agent组件 4.为要移动物体添加脚本 using UnityEngine; using UnityEngin

[原]Unity3D深入浅出 - 导航网格自动寻路(Navigation Mesh)

NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路..导航时,只需要给导航物体挂载导航组建,导航物体便会自行根据目标点来寻找最直接的路线,并沿着该线路到达目标点. 下面通过一个简单的Sample来介绍NavMesh的应用: 1.在Scene中新建三个Cube,如下图摆放. 2.选中上图三个Cube,并在Inspector面板中选中为静态(static)下拉选项的Navi

Unity导航网格参数

Navigation Object:物体参数面板 Navigation Static:勾选后表示该对象参与导航网格的烘培. OffMeshLink Generation:勾选后可跳跃(Jump)导航网格和下落(Drop). Bake:烘培参数面板 Radius:具有代表性的物体半径,半径越小生成的网格面积越大. Height:具有代表性的物体的高度. Max Slope:斜坡的坡度. Ste Height:台阶高度. Drop Height:允许最大的下落距离. Jump Distance:允许

Unity导航

在如今当下的互联网时代背景下,Unity3D作为游戏开发的主要工具,为我们游戏开发提供了诸多便利. 说到游戏我们不得不提到一个不可或缺的组成部分:导航系统; NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,从而实现游戏自动寻路的功效. 那我们今天就来搭建一个简单的自动寻路的导航系统: 首先:我们要有一个可以供我们游戏物体移动的游戏场景,如:一个Plane或者一个Scene; 这里,作者使用了一个简单的塔防场景; 游戏场景设置好了,我们下一步做什么呢? 找到检视窗口点

【Unity】输入系统

1. Unity 的输入系统 1.1  虚拟轴的输入检测 Unity默认定义了15个虚拟轴. 可以通过Edit -> Project Settings -> Input 打开 InputManager 来查看定义好的虚拟轴 (1) 虚拟轴的属性 Size之后的一些属性,例如:Horizontal,Vertical.顾名思义这是水平方向和前后方向上的定义(针对于轴向在X轴上).点击 Horizontal旁边的三角形,可以看到其中定义了许多内容.例如:Name表示的是这个虚拟轴的名称,Negati

【Unity】12.3 Off Mesh Link组件

开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 Off Mesh Link组件用于手动指定路线来生成分离的网格连接.例如,游戏中让行进对象上下爬梯子到达另一块网格的情景就是利用生成分离的网格连接来实现的. 1.基本操作 在场景中选中某个导航网格几何体后,在检视器视图中右击Static右侧的下拉框勾选[Off Mesh Link Generation],即可将其标记为分离的网格链接,如下图所示: 以这种方式标记的静态几何体,将在导航网格烘焙

截获导航控制器系统返回按钮的点击pop及右滑pop事件

前几天看了@栾小布的一篇文章:Custom backBarButtonItem,在跟着做的时候我又顺便扩展了一些,写此文章的目的是为了总结一下自己所写的东西,方便以后翻看容易,同时也是自己入行iOS一年时间,希望写点东西练练手,还有希望可以分享给大家,希望大家一同讨论,提出宝贵意见以及更简单的实现.总体效果如下: 同时受@J_雨的轻松学习之——IOS利用Runtime自定义控制器POP手势动画一文影响,所以我们将用两种方法实现. 实现思路 每一个navigationController都自带有一

后台寻路系统的大体思路与流程

总的思路就是: 通过前台unity的navigation的的接口:  获得顶点和三角形集合数据, 经过转换, 生成recastnavigation插件寻路模块detour需要的导航数据 故制作了工具MakeNavmeshData生成detour需要的导航数据, 独立开来,以节约后台服务器启动时间 后台服务器地图模块初始加载后台导航数据, 生成navmesh_query, 从而实现寻路

Unity3D 导航寻路

先选择Window-->Navigation 在新打开的窗口中点击Bake. 待烘焙结束之后. 给需要导航的物体添加NavMeshAgent组件.可以调整速Speed Radius 等. 然后 1 NavMeshAgent agent = this.GetComponent<NavMeshAgent>(); 2 //设置目标 3 agent.SetDestination(player.position); 4 //停止 5 agent.Stop();