导航网格寻路组件

Unity NavMeshComponents 导航网格组件:从安装配置到动态寻路实战 在游戏开发中,寻路系统是实现角色自主移动的核心技术,它决定了AI角色如何智能地在复杂场景中导航。其原理是通过构建导航网格,将三维场景抽象为可行走区域的二维图,再运用A*等寻路算法计算最优路径。这项技术的价值在于为开放世界、策略游戏等类型提供了动态、高效的AI移动解决方案,极大地提升了游戏的真实感和策略深度。应用场景广泛,从RPG中的NPC巡逻到RTS中的单位调度都离不开它。本文聚焦于Unity官方开源的NavMeshComponents,这是一套强大的高级导航网格构建工具,支持运行时动态生成与修改,完美解决 阅读详情

1、导航网格寻路组件

寻路组件的作用就是帮助角色可以在地形上准确的移动起来,本质就是根据烘焙出的寻路网格信息,通过基于A星寻路的算法计算出行进路径让我们在该路径上移动起来

2、参数相关

导航网格寻路组件——Nav Mesh Agent(导航网格代理人)

3、代码相关

//使用网格相关脚本需要引用命名空间
//UnityEngine.AI

#region 常用内容
//自动寻路设置目标点
//agent.SetDestination()

//停止寻路
//agent.isStopped = true;
#endregion

#region 不常用内容
#region 变量
//关键变量
//1.面板参数相关 速度 加速度 旋转速度等等
print(agent.speed);
print(agent.acceleration);
print(agent.angularSpeed);
//2.其它重要属性
//2-1当前是否有路径
if( agent.hasPath )
{

}
//2-2代理目标点 可以设置 也可以得到
print(agent.destination);

//2-3是否停止 可以得到也可以设置
print(agent.isStopped);

//2-4当前路径
print(agent.path);

//2-5路径是否在计算中
if( agent.pathPending )
{

}
//2-6路径状态
print(agent.pathStatus);

//2-7是否更新位置
agent.updatePosition = true;

//2-8是否更新角度
agent.updateRotation = true;

//2-9代理速度
print(agent.velocity);

#endregion

#region 方法
//手动寻路
//计算生成路径
NavMeshPath path = new NavMeshPath();
if( agent.CalculatePath(Vector3.zero, path) )
{

}
//设置新路径
if(agent.SetPath(path))
{

}
//清除路径
agent.ResetPath();

//调整到指定点位置
agent.Warp(Vector3.zero);
void Update()
{
    if( Input.GetMouseButtonDown(0) )
    {
        RaycastHit hit;
        if( Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit ) )
        {
            print(hit.collider.name);
            agent.isStopped = false;
            //让对象朝目标点移动 先生成行进路径 然后再移动
            agent.SetDestination(hit.point);
        }
    }

    if( Input.GetKeyDown(KeyCode.Space) )
    {
        agent.isStopped = true;
    }
}

寻路系统:动态障碍物 寻路的相关参数 需要先勾选 游戏场景中所有需要烘焙路径信息的游戏对象状态为 static 然后点开windos菜单下的navigation窗口进行烘培 Navigation Static ;表示该游戏对象是否参与导航网格的烘培 Generate OffMeshLinks : 是否可以使用OffMeshLinks使不连续的地段连接起来 Navigation Area : 导航区域设置 阅读详情

相关推荐

Unity --- 导航网格 与 导航的使用

当我们角色的重心(中心)部分来到边框线的时候(如下图的胶囊),我们的角色(圆柱体人)的边缘就和整个地图的边缘重合了,此时圆柱体人再往前移动一步的话就会导致角色(圆柱体人)掉出地图,所以边框外的部分都被识别为不可行走,所以会没有网格覆盖。所谓的代理半径和代理高度,其实这些参数都是一个圆柱体的参数,AI算法会根据这些参数生成一个圆柱体,而这个圆柱体就是用来作为人形模型的替代品的(也就是所谓的代理)有了导航组件的话,我们的游戏物体将会具有自动绕过障碍物的能力,以及在绕过障碍物的前提下计算最短路径的能力。...

qq_51947882的博客 3008

NavMesh 导航网格神级插件发布!高效实现 3D 自动寻路

寻路是游戏开发中不可忽视的功能之一,NavMesh 导航网格寻路则被广泛用于在复杂的 3D 游戏世界中实现动态物体自动寻路。开发者 iwae 创作了插件 Easy NavMesh,在 Cocos Creator 3.x 中实现了完善的 3D 自动寻路功能。导航网格(Navigation Mesh,简称 NavMesh)能够存储可行走区域的网格信息,用以在复杂的 3D 空间中实现导航寻路等功能。导航...

Cocos的博客 2517

Unity3d NavMeshAgent自动寻路组件

我们常见的有三种寻路方式 1.路点寻路 2.单元格寻路 3.网格寻路 简单介绍一下 1.路点寻路 如下图,物体从 point位置出发依次经过(point1 、point2、point3、point4、point5)进行移动 代码如下 using System.Collections; using System.Collections.Generic; using UnityEngin

leonardo_Davinci的博客 1万+

Nav导航网格寻路

在查找NavMesh资料的时候看到这篇blog写的不错,从原理到实现,很详细。以下内容转自http://blianchen.blog.163.com/ by 竹石 NAV导航网格寻路(1)-- 介绍   这篇是翻译的文章,原文 http://www.ai-blog.net/archives/2008_07.html WayPoint寻路 下图是一个典型的路点寻路

夜风的BLOG 3万+

二维紧束缚模型求解程序

假如我们已经推导出了二维紧束缚模型的哈密顿量矩阵H(kx,ky)的解析形式,那么在整个布里渊区对角化矩阵就可以得到能带。从技术上说这里面有以下几个问题。 1. 缺少实空间和倒空间的坐标,使得能带难以和布里渊区高对称点对应。 2. 最容易处理的布里渊区是矩形,对于其他多边形,如果全布里渊区mesh画费米面有一定技术困难。 因此一个好的处理框架是首先给出实空间原子坐标,给出实空间哈密顿量,...

wwxy1995的博客 4083

PSF(点扩散函数)与去卷积算法消除图像模糊

本文旨在总结图像处理中使用去卷积的传统方法来进行图像去模糊的相关知识。

m0_53607446的博客 6015

Unity核心10——导航寻路系统

Unity 中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往​中的导航寻路系统的本质,就是在 A 星寻路算法的基础上进行了拓展和优化导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据导航网格寻路组件(NavMesh Agent)——寻路组件就是帮助我们根据地形数据计算路径让角色动起来的关键。

weixin_53163894的博客 5909

基于STM32的智能工业机器人臂控制系统

工业机器人臂是智能制造的核心组件,广泛应用于装配、焊接、搬运等任务。基于STM32微控制器的机器人臂控制系统,通过集成伺服电机驱动、运动规划算法和实时通信功能,实现对多轴机械臂的精确控制与路径规划。本设计通过STM32实现了一套智能工业机器人臂控制系统,集成了高效的运动规划算法和实时控制功能。机器人臂系统根据输入的目标位置(如工件坐标),通过运动学计算生成动作轨迹,利用伺服电机驱动器控制关节运动。该系统广泛应用于工业自动化场景,如汽车制造中的零件装配、电子产品生产中的元件焊接以及物流系统中的物料搬运。

stm32d1219的博客 2568

unity3d 通过Nav Mesh Agent组件实现敌人巡逻以及有关“SetDestination”报错问题解决

这里也有一个需要注意,pos1,pos2的Y轴的值尽量与地面的Y轴贴近,不然导航的时候会出现角色乱走的情况。在实现敌人自动巡逻这一块我们可以通过使用unity自带组件Nav Mesh Agent(导航网格代理),在省去冗杂的代码量的同时可便利的实现这一功能。"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh!这个让人懵的错误要引入NavMesh的动态烘培的概念

m0_64652083的博客 4365

《一》:LBE,VR 大空间系列——场景环境需求解析

当前,大量 VR 体验活动在室内场地开展。因此,对于场地照明有特定要求:除天花板外,场地的所有表面均需有照明覆盖。这是为了保证玩家无论处于场地的哪个位置,地面与墙面都不会出现明显的影子。场地内不建议安装射灯或高强度的点光源,若已安装此类灯具,需使用柔光板进行遮盖。此外,要避免在阳光下使用 VR 设备台。参考图(请忽略其中Maker标签)

unitygroup的博客 944

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

随着公共安全需求的日益增长,危险物品检测技术在社会安防、交通安检等领域发挥着重要作用。本文介绍了一个基于YOLO系列深度学习框架的危险物品检测系统,集成了YOLOv8、YOLOv7、YOLOv6和YOLOv5四种先进的物体检测算法。系统采用PySide6开发了用户友好的图形界面,提供了完整的训练代码、预训练模型和数据集构建方案。实验结果表明,该系统在危险物品检测任务上实现了高精度和高实时性,为实际应用提供了可靠的技术支持。

YOLO 156

【亲测免费】 导航网格寻路:轻量级C++解决方案入门指南

导航网格寻路:轻量级C++解决方案入门指南 在MMORPG游戏世界里,无缝、高效的寻路机制是连接虚拟空间与玩家体验的桥梁。今天,我们将探索一款专为初、中级游戏开发者设计的开源宝藏——导航网格寻路项目。这款项目不仅简化了复杂的寻路难题,更以其独特的友好性,成为了开发者学习和实践寻路算法的理想起点。 项目简介 在浩瀚的游戏开发领域,寻路算法常常让开发者头疼不已。但此项目却独树一帜,提供了一款面向平面多...

gitblog_00051的博客 530

ABAP CDS View 从入门到精通教程第一篇:ABAP CDS View 在 SAP 技术体系中的重要地位

摘要:本文介绍了SAP开发技术专家提供的多套SAP开发教程,涵盖ABAP、UI5、Fiori、OData、BTP等技术领域。重点阐述了ABAP CDS View在SAP S/4HANA中的核心地位,作为虚拟数据模型(VDM)的关键技术,它实现了OLTP和OLAP的统一处理。文章还说明了学习CDS View的前置条件,包括需要SAP NetWeaver 7.50 SP01或更高版本系统,以及使用SAP ABAP Development Tool进行开发实践。作者具有16年SAP开发经验,这些教程形成了完整的S

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 899

组件:导航网格寻路

路径及障碍物设置 01.勾选Navigation Static 02.设置Navigation Area Not Walkable:不能经过该物体(不能从它顶部经过) Bridge:桥,指定路径(例如小兵按照某条路径行走) 03.烘培路径 角色控制 代码控制 01.自动寻路到目的地(紫色) 02.射线检测设置目的地(红色) 分离网格链接(OffMe...

qq_35422344的博客 740

ZYNQ PL通过EMIO ETHE1外接PHY由GMII转RGMII

1,设置EMIO方式引出ETHE1 2,从GMII过度到RGMII GMII: 发送 gmii_tx_clk gmii_tx_d[7:0] gmii_tx_en gmii_tx_er 接收 gmii_rx_clk gmii_rx_d[7:0] gmii_rx_dv gmii_rx_er RGMII: 发送 tx_clk tx_d[3:0] tx_ctrl 接收 rx_clk rx_d[3:0] rx_ctrl 首先数据总线从时钟单边沿采样8bit转变为了双边沿采样4bit,从88E1

wangjie36的博客 1万+

Unity学习--导航寻路功能-- 寻路网格生成与脚本使用(旧版)

本文总结了Unity导航寻路系统的核心功能与应用。主要内容包括:1)导航网格生成与参数设置,通过Bake操作生成可行走区域;2)NavMeshAgent组件的使用,包含寻路API和避障设置;3)OffMeshLink实现精确跳跃控制;4)NavMeshObstacle处理动态障碍物。文章详细介绍了各组件参数配置和实际应用场景,如区域跳跃、动态障碍清除等,为游戏中的AI寻路避障提供了完整的解决方案,通过组合这些功能可实现丰富的地图移动效果。

misco43的博客 1609

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Unity内置寻路算法-导航网格

路算法非常重要,因为绝大部分的游戏都需要用到,比如RPG游戏中的任务系统,任务点击任务后需要自动寻路到目标位置,再比如Moba游戏,我们点击地图,英雄就会自动寻路到点击的地方。这就是寻路算法的作用了。首先我们要用unity的导航网格组件,我们就需要烘焙场景,然后根据烘焙出来的数据,才能进行具体寻路,比如什么地方可以走,什么地方不能走,爬坡的最大高度等等,所以你怎么烘焙你的场景,就会出现怎么样的寻路地图。当你看到你的场景出现浅蓝色的区域时,那么你就成功的烘焙了你的场景了,浅蓝色区域就是可以行走的区域了。

Unity_RAIN的博客 635

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Unity新导航系统---NavMeshSurface组件

这个文章会一步一步介绍在Unity中如何通过鼠标点击来自动寻路(新导航系统),然后会去介绍NavMeshSurface组件的所有属性有什么用处。

unity_geeker的博客 5840

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Unity 导航网格使用教程

在导航标签页的烘焙一栏中,点击烘焙按钮。网格内的区域表示角色可以行走,通过观察网格可以看到哪些区域是可通行的,哪些区域因为障碍物等原因不可通行。例如如果有横梁阻挡且横梁高度高于设置的角色高度,那么被横梁阻挡的区域在导航网格中就不会显示为可通行区域。本节课先了解了导航网格的生成及相关参数设置,下节课将介绍如何创建角色并真正利用导航网格进行移动。通过逐步学习和实践,就能熟练掌握 Unity 导航组件的使用,为游戏开发中的寻路功能实现打下坚实基础。点击窗口,选择 AI 导航中的导航选项,打开导航标签页。

m0_57836225的博客 1157

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

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

u011105442的专栏 1443

Unity Navigation 导航、寻路系统

Unity Navigation 导航、寻路系统 概述 了解Navigation的能力范围 Navication系统的构成 NavMesh 导航网格,是unity烘焙出来的数据 NavMesh Agents 帮助角色寻路 Off-Mesh Links 连接2点的组件,也可以用来跨越缝隙 NavMesh Obstacles 移动的或者不动的障碍物 Navication...

TDC的专栏 1634

UE4 动态创建寻路网格

UE Runtime动态创建导航网格并绘制分析

DuGuYiZhao的博客 3979

Unity3D 导航系统

打开导航页面 Window ==》Navigation Agents 可以设置多种导航类型 AgentTypes:设置不同的导航者类型 Name:导航者的名字 Radius:导航碰撞体的半径 Height:导航碰撞体的高度 SetpHeight:导航者的脚步高度 MaxSlope:导航者爬坡的最大坡度 Areas 对导航设置不同的区域 Name:区域名称 Cost:导航消费值 通过不同区域的导航消费值的高低来计算那一条导航路径消费最低 Bake Agent Radius:代理半径,地图宽度大于2倍半

weixin_44098711的博客 1879

UE5导航网格偏移之谜:碰撞体对齐才是AI寻路的关键

碰撞体是UE5物理与碰撞检测的基础组件,承载着阻挡、交互、寻路等多层逻辑。在关卡设计中,碰撞体通常附着于静态网格体(Static Mesh)上,但如果两者之间的Transform没有严格对齐,就会出现视觉模型与物理边界不一致的问题。导航网格(NavMesh)是基于碰撞体结构自动生成的寻路数据,当组件偏移发生时,导航网格的可通行区域也会同步错位,最终导致AI寻路绕路、卡顿甚至无法到达目标。正确做法是从根组件的设置、碰撞体相对位置归零、物理资产的使用以及烘焙后导航网格的校验入手,确保碰撞体与视觉网格始终贴合。本

weixin_33835461的博客 232
上一篇: 导航寻路系统
下一篇: 网格外连接组件
Go_Accepted
博客等级 码龄10年 601粉丝 334原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值