1 前言

导航系统中介绍了导航的基本用法,但是不能解决分离路面导航问题。如下图,胶囊体需要导航到立方体位置,但是路面不连续,烘焙(Bake)导航网格后,断开处也没有导航网格,因此,胶囊体导航到分离路面边界处就会停下来。

角色在分离路面边界处,存在两种行为:1. 水平跳,2. 往下跳或往上跳。Unity3D 针对这两种情况提供了对应的解决方案:

  • 水平跳:给分离路面对象勾选 Generate OffMeshLinks 属性;
  • 往下跳或往上跳:在路面分离处创建 2 个空对象作为跳跃点,给一个跳跃点添加 OffMeshLink 组件,并将 2 个跳跃点对象拖拽到 OffMeshLink 组件中。

说明:水平跳场景下,也可以使用添加 OffMeshLink 组件方式;往下跳或往上跳场景下,不能使用勾选 Generate OffMeshLinks 属性方式。

2 通过 Generate OffMeshLinks 实现分离路面导航

1)游戏界面

2)设置 Navigation Static、Generate OffMeshLinks

依次选择【Window→Navigation】打开导航窗口,再选择 Object 选项卡,选中两个地面,勾选 Navigation Static、Generate OffMeshLinks,如下:

3)烘焙导航网格

切换到 Bake 选项卡,设置 Max Slope、Step Height、Drop Height、Jump Distance 属性如下:

点击 Bake 烘焙导航网格,导航网格显示如下:

其中,浅蓝色表示导航可以走的区域,中间的连接线表示导航跨越线。

4)添加 NavMeshAgent 组件

给胶囊体添加 NavMeshAgent 组件。

5)添加脚本组件

NavigationController.cs

using UnityEngine;
using UnityEngine.AI;public class NavigationController : MonoBehaviour {private NavMeshAgent navMeshAgent;private Transform target;private void Awake() {navMeshAgent = GetComponent<NavMeshAgent>();target = GameObject.Find("Target").transform;}private void Update() {navMeshAgent.SetDestination(target.position);}
}

说明:Target 是小立方体, NavigationController 脚本组件挂在胶囊体上。

6)运行效果

3 通过 OffMeshLink 组件实现分离路面导航

在分离路面边界处往下或往上跳的场景,使用 Generate OffMeshLinks 方法,在边界处仍然无法烘焙出导航连接线,此时需要使用到 OffMeshLink 组件。

1)游戏界面

2)设置 Navigation Static

依次选择【Window→Navigation】打开导航窗口,再选择 Object 选项卡,选中两个地面,勾选 Navigation Static,如下:

3)添加 OffMeshLink 组件

在分离路面边界处创建 2 个空对象,并重命名为 Start、End,给 Start 添加 OffMeshLink 组件,并将 Start、End 拖拽到 OffMeshLink 组件中,如下:

补充:由于空对象不可见,为方便调整空对象位置,可在 Inspector 窗口给空对象设置 Icon。

4)烘焙导航网格

Navigation 窗口切换到 Bake 选项卡,点击 Bake 烘焙导航网格,可以看到 2 个空对象之间有一条连接线。

5)添加 NavMeshAgent 组件和脚本组件

同第 2 节。

6)运行效果

【Unity3D】分离路面导航相关推荐

  1. 【Unity3D】Unity3D技术栈

    1 前言 本文梳理了笔者在学习 Unity3D 的过程中,对 Unity3D 的理解和学习路线,以帮助读者循序渐进地学习 Unity3D,后续笔者仍会持续更新 Unity3D 相关技术栈,并同步到本文 ...

  2. 【Unity3D】动态路径特效

    1 前言 本文通过导航系统(NavMeshAgent)和线段渲染器(LineRenderer)实现了角色走迷宫和绘制路径功能,同时实现动态路径特效. 导航系统的介绍详见博客:导航系统.分离路面导航.动 ...

  3. Unity基础知识汇总

    2.Unity相关知识 2.1 Unity介绍 Unity成为一款可以轻松创建游戏和三维互动的开发工具,是一个专业跨平台游戏引擎 Unity操作快捷键 Ctrl N New Scene 新建场景 Ct ...

  4. Navigation导航寻路RecastDemo讲解

    在2D游戏中,我们常常使用A星算法,基于方形网格进行寻路. (图:2D游戏中的A星寻路) 但是在3D游戏中,场景巨大,2D的方形网格寻路虽然可用,但效率极低. 这时候,用NavMesh导航网格寻路是最 ...

  5. 滴滴单通道语音分离与目标说话人提取和抑制技术进展

    桔妹导读:为了将目标语音从含多种干扰(如车噪.导航音.车内FM等)的复杂声学环境中分离出来同时尽量减小对原始语音的损伤,提高人机交互.客服听音等的效率,滴滴结合了在前端信号处理的多年研发积累与该领域的 ...

  6. 视频教程-Unity3D实战入门之第三人称射击游戏(TPS)-Unity3D

    Unity3D实战入门之第三人称射击游戏(TPS) 6年程序开发经验,精通C/C++/C#编程. 曾担任过Unity3d游戏开发主程和Unity3d游戏开发讲师,熟悉Unity3d的UI系统.物理引擎 ...

  7. Unity3D实战入门之第三人称射击游戏(TPS)-伍晓波-专题视频课程

    Unity3D实战入门之第三人称射击游戏(TPS)-327人已学习 课程介绍         这是一套第三人称射击游戏开发的入门基础课程. 本课程以一款小型的第三人称射击游戏为案例,手把手教你如何搭建 ...

  8. python什么框架写游戏好_免root修改器框架,免root框架大全,游戏框架免root:《游戏框架》 用python做游戏用什么框架-南开游戏网...

    <游戏框架> 用python做游戏用什么框架 2020-11-25 17:37:36 广告 游戏作为一种分类框架 一个好的网计作品就必然有一个号的网页,那么我们来分析一下,在网页设计过程中 ...

  9. FME会员期刊(2012秋季版)——更新完毕

    原文发布时间:2012-11-19 11:20:01 原文:http://www.safe.com/about/newsletter/ 整理:FME技术支持小组 飞机,火车,汽车-和激光 对于上了年纪 ...

  10. 国家高技术研究发展计划(863计划) 2015年度项目申报指南

    信息技术领域 1. 超级计算机 1.1 高效能计算机(三期) 高效能计算机一期和二期集中部署了新一代高效能计算机系统.超算应用社区.典型行业应用软件开发等课题.三期将在前期的基础上,重点支持E级超级计 ...

最新文章

  1. 关于计算机设计的论文,计算机的设计论文.doc
  2. 程序员为什么老得快_中国程序员工资为什么那么高?老程序员:淘汰速度快,入行成本大...
  3. iphone如何信任软件_苹果手机“未受信任的企业级开发者”怎么解决?
  4. CRM My Opportunity max hit的技术实现
  5. 微信公众平台 分享到朋友圈 js代码
  6. eclipse 如何关联git_git的相关操作
  7. 10.66道经典的Java基础面试题集锦为何晴空
  8. mac 下php运行bug
  9. Node on Mac 初步
  10. 超简单!Oneplus一加手机安装谷歌服务框架Google Play商店下载应用,安装谷歌三套件
  11. 1分钟快速实现高效的扫描二维码,急速识别手机相册二维码
  12. 城市区域二手房信息python爬取、保存和初步分析—笔记
  13. python变量与声明
  14. gt,gte,lt,lte缩写代表的意思
  15. riak教程 java_Riak学习(2):java连接Riak服务,使用Protocol Buffers连接
  16. windows SDK模拟游戏钢琴的实现(一)
  17. 推荐系统: 问题、算法与研究思路
  18. ERP项目经理的“5+4”素质能力模型
  19. Day48(List接口,ArrayList,LinkedList,Vector,Set接口,HashSet,LinkedHashSet,TreeSet,自然排序,定制排序)
  20. 数据挖掘模型生命周期管理

热门文章

  1. 什么是公网ip?--快解析科普
  2. 日常工作记录---在虚拟机中进行slam建图
  3. CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思
  4. 互联网晚报 |10/12 |中国汽车出口量跃居全球第二;统一充电接口或让苹果每年损失百亿;《财富》杂志公布“改变世界的公司”榜单...
  5. win10用户名与计算机名字一样,win10电脑账户名和其他信息怎么更改
  6. 热敏电阻(NTC)的基本参数及其应用(图)
  7. ContextCapture APP 不需电脑用手机就能实景三维建模
  8. buctoj2021年ACM竞赛班训练(四)全题解
  9. 【深度解读】电动自行车新国标对锂电池行业的影响分析
  10. html左右箭头实现图片滚动,jquery控制左右箭头滚动图片列表的实例