Unity (NavMeshAgent 导航系统)
描述:一个角色在特定环境下自动到达指定目标
导航网格(NavMesh)
1、设置导航静态物体(NavigationStatic)
从头至尾不会Transform属性不会发生改变的 |
环境对象 |
2、烘焙网格前的设置
a.打开Navigation窗口 | |
b.设置角色Size | Agent Radius(角色半径) |
Agent Height(角色高度) | |
Max Slope(角色可以爬的最大坡度) | |
Step Height(角色可以上的台阶高度) | |
c.Bake烘焙 | Min Region Area(允许删除小于这个数的非链接导航区域的路径) |
面板属性
AgeneSize(角色大小)
Radius(半径) | |
Height(高度) | |
Base Offset(偏移量) | 导航角色与网格中心点偏移 |
Steering(导航过程)
Speed(导航过程中角色的最大速度) | |
AngularSpeed(角速度) | |
Acceleration(加速度) | |
Stoping Distance(停止距离) | 当前角色距离目标多远时停 |
Auto Breakting(自动减速) | 当角色快达到目标时自动减速 |
Obstacle Avoidance(躲避障碍物)
Quality(导航质量) |
Priority(优先级) |
Path Finding(寻路设置)
Auto Traverse Off Mesh Link | 自动跨越分离路面 |
Auto Repath | 自动重新规划路径 |
Area Mash | 分层剔除(设置角色可以走哪些层) |
常用属性与方法
SetDestination(Vector3) | 设置导航目标 |
Stop() | 停止导航(过时) |
Resume() | 恢复导航(过时) |
isStoped | 停止还是恢复(属性) |
isOnOffMeshLink | 是否正在分离路面导航 |
当前分离路面导航的数据 | |
currentOffMeshLinkData |
startPos (分离路面起点)、 endPos (分离路面终点)、 activated (当前是否处于激活状态)、 linkType { LinkTypeManual(使用OffMeshLink组件完成分离路面导航) LinkTypeDropDown(跳下方式完成分离路面导航) LinkTypeJumpAcross(水平跳跃方式万恒分离路面导航)} |
CompleteOffMeshLink | |
CalculatePath | 判断当前角色能否通过导航的方式到达一个目标 |
desireVelocity | 期望速度 |
velocity | 当前物体的实际速度 |
speed | 导航路程中的最大速度 |
destination | 目标点 |
stoppingDistance | 距离目标多少距离时停止导航 |
remainingDistance | 距离导航目标剩余多少距离 |
updatePosition | 通过导航更新位置 |
updateRotation | 通过导航更新旋转 |
pathStatus |
判断当前路径状态 1、PathComplete(可以到达) 2、PathPartial(有路但是到达不了) 3、PathInvalid(没有路,路径无效) |
运行后导航角色指引
红色箭头 → 指向(阶段性目标)
蓝色箭头 → 期望速度
黑色箭头 → 瞬时速度
分离路面导航
普通分离路面
1、设置分离路面静态
2、分离路面跳跃设置
Jump Distance(跳跃距离)
Drop Height(下降高度)
高级分离路面
1、两个跳跃点(最好是在导航网格上)
2、添加一个Off Mesh Link组件
3、将两个跳跃点对象拖拽到Off Mesh Link组件中 Start、End
分层路面导航
1、给不同的路面设置不同的导航层(Navigation Area)
2、给角色设置AreaMask,设置角色可以走哪些层
代码中设置areaMask,【所选层的编号2次幂之和】
举例:12 就是 2、3 号层
层号0 | 2^(0) = 1 |
层号1 | 2^(1) = 2 |
层号2 | 2^(2) = 4 |
层号3 | 2^(3) = 8 |
层号4 | 2^(4) = 16 |
动态路障
形状( 长方体、胶囊体 )
Carve
true(可以另谋出路)
false(坚持等路障消除)
拓展: 抛物线跳跃
Unity (NavMeshAgent 导航系统)相关推荐
- Unity 3D 人形角色动画(Avatar)||Unity 3D 导航系统||Unity 3D 障碍物
Unity 3D 人形角色动画(Avatar) Mecanim 动画系统适合人形角色动画的制作,人形骨架是在游戏中普遍采用的一种骨架结构.. 由于人形骨架在骨骼结构上的相似性,用户可以将动画效果从一个 ...
- Unity 3D 导航系统||Unity 3D 障碍物
Unity 3D 导航系统 过去,游戏开发者必须自己打造寻路系统,特别是在基于节点的寻路系统中,必须手动地在 AI 使用的点之间进行导航,因此基于节点系统的寻路非常烦琐. Unity 3D 不仅具有导 ...
- [Unity][NavMeshAgent]怎么计算角色走过的路程长度
1.确定路程长度,得获得 2个坐标点,起点 和 终点. float f = Vector3.Distance(a,b); 2.对累计走过得长度进行累加 float distance += f; 这个条 ...
- 【Unity 3D 从入门到实战】Unity 3D 导航系统
目录 一,前言 二,导航系统介绍 三,Navigation总控制面板介绍 1,Agents面板(导航参数设置) 2,Areas面板(层设置) 3,Bake面板(烘焙导航网格) 4,Object面板(对 ...
- 《UnityAPI.NavMeshAgent导航网格代理》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Unity+NavMeshAgent+立钻哥哥++OK++)
<UnityAPI.NavMeshAgent导航网格代理> 版本 作者 参与者 完成日期 备注 UnityAPI_NavMeshAgent_V01_1.0 严立钻 2020.09.10 # ...
- 游戏思考17:寻路引擎recast和detour学习三:客户端角度学习(unity专题导航系统,阶段三完结)
文章目录 一.如何构建导航网格 1)导航系统作用 2)导航系统包括 3)做一个简单的导航Demo 二.当行网格烘焙与烘焙设置 1)对应相关参数 2)参数讲解 三.导航网格代理与自动巡逻角色 1)导航网 ...
- Unity NavMeshAgent参数及API
前言:Unity版本为2019.2.9f1 Ppersonal.Unity版本可在上方Help下点击About Unity找到.本文将采用官方文档的英文并对比介绍.由于个人英文和开发水平有限,翻译或解 ...
- Unity Pro 2018 for Mac(游戏开发工具)
Unity Pro 2018 for Mac功能特色 一.与您制作流程匹配的可扩展的一体化编辑器 Unity Editor具有多种工具,可在您的开发周期中进行快速编辑和迭代,其中的Play模式可让您实 ...
- Unity_导航系统
目录 基础简介 静态网格 动态网格 分离网格连接 基础简介 Unity的导航系统是需要先分析场景中的自由活动区域和障碍区域,简单说就是先在编辑器模式下进行烘焙生成场景信息,然后再运行A*算法计算出路径 ...
- Unity Pro 2019 for mac(3D游戏动画开发工具) v2019.2.21f1
想要一款功能强大的3D游戏动画开发工具?Unity 2019能够轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,以及一个全面整合的专业游戏引擎,用于创建诸 ...
最新文章
- 不同的二叉搜索树-战胜100%的Java用户
- BZOJ2339: [HNOI2011]卡农(dp 容斥)
- AndroidStudio 常用配置
- xdebug 远程调试
- spock 集成测试_使用Spock 1.2简化对遗留应用程序的集成测试
- 分享WordPress博客搜索引擎优化的六点经验
- 计算机专业毕业后现状,计算机专业怎么样_毕业生道出现状_“千万”别学
- 铠侠 RC10 固态硬盘寿命暴力写入测试:1100pe 毫发无损
- 【体系结构】LGWR进程触发机制的理解
- 解析C#中[],List,Array,ArrayList的区别及应用
- Mybatis SQL语句控制台打印
- 视频教程-毕业设计精品课之基于ASP.NET旅游网站源码实战讲解(带房屋互租模块)-.NET
- Xmind 8 下载以及破解
- Java中new一个对象的步骤:
- html tooltips效果,Jquery Tools介绍—Tooltips
- 显示具体化、显示实例化、隐式实例化
- 业余草双因素认证(2FA)教程
- 把桌面路径设置到D盘
- android的适配器作用,适配器在Android中的作用是什么?
- Linux下配置ip地址