Unity3D AI:导航系统-导航网格生成
导航系统又称寻路系统,在siki学院的视频教程中,我们将通过介绍内置的导航系统来深入学习Unity3D的人工智能。我将展示如何在场景找到最短的路径以及避开障碍。
第一步:要对场景进行网格烘焙。选择window-Navigation
NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。。导航时,只需要给导航物体挂载导航组建,导航物体便会自行根据目标点来寻找最直接的路线,并沿着该线路到达目标点。
下面通过一个简单的案例来介绍NavMesh的应用:
并在Inspector面板中选中为静态(static)下拉选项的Navigation Static,如下图。
2.依次选择 Navigation-Bake ,打开后面板如下。
单击该面板右下角的Bake按钮,即可生成导航网格,蓝色为可行走区域。
(如何不想烘培石头上方为可行走可以在Object中选择Not walk able)
3.下面就可以让一个运动体根据一个导航网格运动到目标位置。
把游戏人物创建一个capsule(胶囊)运动体,为该胶囊挂在一个Nav Mesh Agent(Component - Navigation - Nav Mesh Agent);最后写一个脚本就可以实现自动寻路了。脚本如下:
using UnityEngine.AI;public class Hero:MonoBehaviour{public NavMeshAgent agent;void Update(){if(Input.GetMouseButtonDown(0)){Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if(Physics.Raycast(ray,out hit)){agent.SetDestination(hit.point);}}}
}
脚本新建完成后挂载到胶囊体上,然后点击鼠标在场景内就能到达目标位置了。
这样一个简单的自动寻路就完成了,如果要更精细的寻路,或要实现上坡,钻"桥洞"等,可根据下面介绍的相关参数进行调节。
下面介绍 Navigation 组件和 Nav Mesh Agent 组件的相关参数。
Navigation
Object:物体参数面板
Navigation Static:勾选后表示该对象参与导航网格的烘培。
OffMeshLink Generation:勾选后可跳跃(Jump)导航网格和下落(Drop)。
Bake:烘培参数面板
Radius:具有代表性的物体半径,半径越小生成的网格面积越大。
Height:具有代表性的物体的高度。
Max Slope:斜坡的坡度。
Ste Height:台阶高度。
Drop Height:允许最大的下落距离。
Jump Distance:允许最大的跳跃距离。
Min Region Area:网格面积小于该值则不生成导航网格。
Width Inaccuracy:允许最大宽度的误差。
Height Inaccuracy:允许最大高度的误差。
Height Mesh:勾选后会保存高度信息,同时会消耗一些性能和存储空间。
Nav Mesh Agent:导航组建参数面板
Radius:物体的半径
Speed:物体的行进最大速度
Acceleration:物体的行进加速度
Augular Speed:行进过程中转向时的角速度。
Stopping Distance:离目标距离还有多远时停止。
Auto Traverse Off Mesh Link:是否采用默认方式度过链接路径。
Auto Repath:在行进某些原因中断后是否重新开始寻路。
Height:物体的高度。
Base Offset:碰撞模型和实体模型之间的垂直偏移量。
Obstacle Avoidance Type:障碍躲避的的表现登记,None选项为不躲避障碍,另外等级越高,躲避效果越好,同时消耗的性能越多。
Avoidance Priority:躲避优先级。
NavMesh Walkable:该物体可以行进的网格层掩码。
Unity3D AI:导航系统-导航网格生成相关推荐
- 人工智能(AI)资源导航
人工智能(AI)资源导航 资源来源:AI圈导航 开放平台 百度AI开放平台 腾讯AI开放平台 美图AI开放平台 AliGenie开放平台 网易人工智能 Amazon AI 框架 TensorFlow ...
- 全网最全100个AI工具导航网站合集
随着ChatGPT年前的爆火,人工智能也变成当今最热门的领域之一,它正在改变着我们的生活和工作方式.无论你是想要学习人工智能的基础知识,还是想要利用人工智能来提升你的业务效率和创新能力,都需要找到合适 ...
- 超72小时整理,全网最全「人工智能·AI 工具导航网站」
随着人工智能领域的快速扩展,各类的AI工具不断涌现,它们在自然语言处理.图像识别.智能推荐等多个领域都展现出了不可或缺的重要性.然而,面对这么多的工具,你是否也曾感到困惑,不知从何处寻找那些优质且实用 ...
- Unity3D AI导航 Navigation
设置步骤: 调出Navigation面板:Window -> AI -> Navigation 选择所有环境物体(静止物体),勾选[Navigation Static],如果是不连接的对象 ...
- [Unity3D]Navigation导航系统讲解及其应用
目录 序言 一.Navigation的基础介绍 二.场景搭建 三.场景烘焙搭建 四.物体Nav Mesh Agent说明 五.Nav Mesh Areas 与 Agents 六.Off Mesh Li ...
- 游戏思考17:寻路引擎recast和detour学习二:recast导航网格生成流程\源码剖析流程\局限性,附录计算点线面举例代码
一.recastnavigation使用介绍 1)模式选择 Solo Mesh:单块生成 Tile Mesh:分块生成 Temp Obstacles:分块并支持动态阻挡 这里测试的话选单块生成 2)模 ...
- 昆虫大脑帮助AI解决导航难题
原作者:SAKYASINGHADASGUPTA, LEAPMIND INC 译者:彭婷 概要:无人机和其他自主机器人需要通过移动或其他有效的方案来解决现实生活中的问题,而这些问题有的小到平常的包裹运输 ...
- GNSS四大卫星导航系统导航电文构成
GNSS简介 GPS:美国全球卫星导航定位系统,是当下最流行也最为成熟的卫星导航系统,采用码分多址(CDMA)技术 BDS:中国北斗卫星导航系统,为中国自主研发的卫星导航系统,旨在实现全球范围内独立自 ...
- unity3d AI 学习--个体行为操控(1)--具体行为类(2)
摘自<Unity3D人工智能编程精粹> 以下都是继承Steering类的,直接上代码了: Pursuit(追逐): using UnityEngine; using System.Coll ...
- AIAGC导航(aiagc.com): 最全的AI工具导航网站
AIAGC导航是一个专注于AI人工智能工具网站推荐的导航网站,可以帮助大家发现最新.最好用.最有趣的AI绘画.AI智能写作助手.AI聊天机器人.AI配音.AI音乐.AI换脸等各种AI工具应用软件,让A ...
最新文章
- xpath 获取当前节点的父节点,兄弟节点的方法
- R语言实现金融数据的时间序列分析及建模
- java 开票金额拆分_关于开票尾差拆分凑整的算法问题
- 蓝桥杯java第八届第七题--日期问题
- C++阶段01笔记02【数据类型(整型、sizeof关键字、实型(浮点型)、字符型、转义字符、字符串型、布尔类型 bool、数据的输入)】
- 前端之JQuery(一)
- 【POJ 3614 Sunscreen】贪心 优先级队列
- 星期三—用JAVA制作简易的通讯软件
- Leecode刷题热题HOT100(1)——两数之和
- 关于在Android中访问和使用到上下文变量
- 【转】 谈谈C++中的swap函数
- UVa 12657 双向链表
- 验证二叉搜索树的golang实现
- python有趣的代码-有趣的一行 Python 代码
- C++模版类List实现
- 虚拟机克隆后没有IP
- 把ipad变成电脑的音箱
- 计算机营销专业毕业生自我评价,市场营销专业毕业生自我评价
- tp交换机管理页面_TP-Link交换机管理设置(RSSManager适合TP-Link楼道交换机)
- 使用SharedPreferences保存list