news 2026/4/16 11:07:53

Unity AI Navigation 从 0 到 1:一篇吃透新 NavMesh 系统的实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unity AI Navigation 从 0 到 1:一篇吃透新 NavMesh 系统的实战

一、为什么你必须升级到老 NavMesh?

如果你还在用 2021 LTS 之前的 Navigation 窗口做 Bake,那你一定踩过这些坑:

  • 场景里一移动箱子,就要重烤 NavMesh,CPU 直接爆炸;

  • 不同体型的 NPC 必须共用同一张 Mesh,导致“巨人穿不过门、老鼠上楼梯”这种魔幻现实;

  • 代码里各种NavMeshAgent.SetDestination写得好好的,一上真机就集体“漂移”。

Unity 2022.2 之后,官方把导航整块拆成AI Navigation 包(com.unity.ai.navigation),老系统被标记为 Obsolete。新系统 = 可运行时烘焙 + 多代理支持 + 真正的动态障碍,香到飞起。


二、5 分钟搭好最小可跑场景

  1. 新建 3D 项目,把 AI Navigation 包装上(Window → Package Manager → Unity Registry)。

  2. 建一个 Plane 当地面,摆几堵 Cube 当墙。

  3. GameObject → AI → NavMesh Surface,选中地面 + 墙壁,Inspector 点 Bake,蓝色网格瞬间生成。

  4. GameObject → 3D Object → Cylinder,Add Component → NavMesh Agent。

  5. 给圆柱挂个脚本:

csharp

复制

using UnityEngine; using UnityEngine.AI; public class MoveToClick : MonoBehaviour { NavMeshAgent agent; void Start() => agent = GetComponent<NavMeshAgent>(); void Update() { if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out var hit)) agent.destination = hit.point; } } }
  1. 运行 → 鼠标点哪圆柱走哪,路径实时避墙,全程零魔法。


三、新系统核心概念一张图看懂

表格

复制

组件作用和老版差异
NavMesh Surface真正持有 NavMesh 数据,可运行时 Bake老版数据藏在场景里,无法动态更新
NavMesh Modifier让子树在烘焙时“无视/改 Area/禁止走路”替代 Navigation Static 复选框
NavMesh Modifier Volume立方体区域内强行改 Area老版做不到“空气墙”
NavMesh Link / Off-Mesh Link跳跃、爬梯、开门新版支持运行时改起点终点
NavMesh Obstacle动态障碍,两种模式:Obstruct vs Carve老版只有 Obstruct,不会挖洞

四、动态障碍:从“撞墙”到“挖洞”

把箱子加上 Rigidbody + NavMesh Obstacle:

  • Obstruct 模式:箱子靠 RVO 被绕开,适合不停移动的推车。

  • Carve 模式:箱子静止后在 NavMesh 上挖洞,重新寻路,适合可被玩家拖动的障碍。
    记得把Carve Only Stationary勾上,移动时不反复挖洞,性能翻倍。


五、多体型 NPC:一张图各自走各路

  1. Window → AI → Navigation → Agents 页签,新增两种 Agent Type:

    • Humanoid:半径 0.5 m,高 2 m,跳距 3 m。

    • Spider:半径 0.3 m,高 0.4 m,可爬 80° 斜坡。

  2. 给地面再挂两个 NavMesh Surface,各自指定 Agent Type,Bake 出两张 Mesh。

  3. 把士兵的 NavMesh Agent → Agent Type 选 Humanoid,小蜘蛛选 Spider,从此各走各的路,互不抢道。


六、运行时烘焙:无限地图的杀手锏

csharp

复制

NavMeshSurface surface; void Start() { surface = GetComponent<NavMeshSurface>(); surface.BuildNavMesh(); // 一帧搞定 }

配合Sliding Window示例,角色走到哪,NavMesh 就增量烘焙到哪,内存只保留玩家周围 128×128 m 的格子,真正做到“伪无限”大世界。


七、动画 + 导航:告别“滑冰”

老版 Root Motion 和 NavMeshAgent 互相打架?新版官方直接给出模板脚本LocomotionSimpleAgent.cs

  1. 关闭agent.updatePosition / updateRotation,由动画驱动位置。

  2. 每帧把agent.nextPosition同步回transform.position,误差过大时再把角色拉回代理位置,兼顾“真实踩点”与“碰撞避让”。

  3. agent.steeringTarget喂给 LookAt IK,提前转头,动作自然。


八、常见坑与调优 checklist

  • Bake 失败全红:检查是否忘了给地面加 Collider 或 NavMesh Modifier 把对象设成 Walkable。

  • Agent 原地打转:把Angular Speed调到 500+,或把Acceleration降低。

  • Carve 后帧率暴跌:Tile Size 默认 256 改 64, carving 并行度↑;移动阈值(Move Threshold)≥ 0.5 m。

  • Off-Mesh Link 不走:确认两端在 NavMesh 上且 Area Mask 包含 Jump;Cost Modifier 别手滑填了 999。

  • Height Mesh 踩空楼梯:在 NavMesh Surface → Advanced → Build Height Mesh 勾上,代理会精确贴楼梯高度,不再悬空滑。


九、升级老项目 3 步走

  1. 备份!

  2. Window → AI → NavMesh Updater → Convert → 一键把旧 Navigation Static 转成 NavMesh Modifier。

  3. 删掉早年从 GitHub 扒的NavMeshComponents脚本,避免重复定义。


十、结语

AI Navigation 不是“小修小补”,而是 Unity 导航的彻底重构:

  • 数据与场景解耦 → 支持 DLC 动态加载;

  • 多代理、多 Area → 战术 FPS、RTS、潜行各取所需;

  • 运行时烘焙 + 动态雕刻 → 沙盒、Roguelike 也能畅玩。

把这篇笔记收藏,下次面试被问到“Unity 怎么做动态寻路”,直接把 Carve 模式、多 Surface、运行时 Bake 甩他脸上,稳。

Demo 工程已上传 GitHub,点个 Star 不迷路 ➜ github.com/yourname/AI-Navigation-Demo
(完)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 14:22:50

VisionPro二开之日志Log模块

VisionPro二开之日志Log模块 一 配置log4net.config文件 <?xml version"1.0" encoding"utf-8" ?> <configuration><configSections><section name"log4net" type"System.Configuration.IgnoreSectionHandler"/…

作者头像 李华
网站建设 2026/4/16 10:39:12

AI侦测模型数据标注:云端协作工具+GPU加速全攻略

AI侦测模型数据标注&#xff1a;云端协作工具GPU加速全攻略 引言 当你需要处理10万张图片的数据标注任务时&#xff0c;是否遇到过这些困扰&#xff1f;本地电脑跑不动、团队成员协作困难、标注进度缓慢...这些问题我都经历过。今天我要分享的云端协作标注方案&#xff0c;正…

作者头像 李华
网站建设 2026/4/8 10:40:31

AI智能侦测开箱即用方案: Docker镜像+示例代码全家桶

AI智能侦测开箱即用方案&#xff1a; Docker镜像示例代码全家桶 引言&#xff1a;为什么你需要这个方案&#xff1f; 想象一下&#xff0c;你是一个外包团队的负责人&#xff0c;刚接到一个AI项目&#xff0c;客户催着要demo&#xff0c;但团队里没人有AI开发经验。这时候&am…

作者头像 李华
网站建设 2026/4/16 10:16:24

物联网安全AI检测:云端方案1小时部署,守护智能设备

物联网安全AI检测&#xff1a;云端方案1小时部署&#xff0c;守护智能设备 引言&#xff1a;为什么智能家居需要AI安全防护&#xff1f; 早上7点&#xff0c;你的智能闹钟准时响起&#xff0c;窗帘自动拉开&#xff0c;咖啡机开始工作——这是智能家居带来的便利生活。但你是…

作者头像 李华
网站建设 2026/4/16 10:14:01

智能监控方案低成本验证:1小时1块,立即体验AI效能

智能监控方案低成本验证&#xff1a;1小时1块&#xff0c;立即体验AI效能 1. 为什么物业经理需要AI监控方案 作为物业经理&#xff0c;你可能经常面临这样的困扰&#xff1a;小区安保需要24小时值守&#xff0c;但人力成本越来越高&#xff1b;传统监控只能录像不能预警&…

作者头像 李华