动态导航表面(NavMeshModifileSurface)

Version >= LayaAir 3.2

一、概述

NavMeshModifileSurface(动态导航表面)是LayaAir 3D导航系统中用于动态修改导航网格的组件。与静态导航表面(NavMeshSurface)不同,动态导航表面的导航网格会跟随其所在节点的移动而更新,使得游戏场景能够更加动态和交互。

该组件继承自NavModifleBase,是动态节点基类的子类。在LayaAir-IDE的属性面板中,该组件显示为动态导航表面

关于3D寻路的整体介绍,请参考3D寻路

二、属性说明

属性 说明
代理类型 agentType 指定该动态导航表面适用的代理类型,需与所属静态导航表面的代理类型匹配
区域标记 areaFlag 标记该动态导航表面的区域类型,影响代理对该区域的寻路代价
数据 datas 烘焙生成的导航网格数据(TextResource类型)。烘焙后自动填充

三、使用说明

3.1 基本用法

当需要在游戏运行时移动导航网格的某些区域时,可以为该区域的节点添加动态导航表面组件。典型场景如移动的地板、可升降的平台等。

使用步骤:

  1. 在场景中的目标节点上添加动态导航表面组件。
  2. 该节点需要放在拥有静态导航表面(NavMeshSurface)组件的节点的子节点下。
  3. 在项目运行前,与父级静态导航表面一起进行烘焙。
  4. 烘焙完成后,该节点的导航网格会跟随节点的移动而动态更新。

3.2 代码动态添加

如需通过代码在运行时动态添加导航网格,需要先提前烘焙好,并存储在预制体中。运行时通过加载预制体的方式进行动态添加。

3.3 注意事项

  • 动态导航表面的节点需要放在静态导航表面节点的子节点下。
  • 节点本身的位置、旋转、缩放不会影响数据变化,但子节点的位置、旋转、缩放会影响数据变化。
  • 如果删减或添加了渲染节点,需要重新烘焙数据。
  • 动态导航表面的数据可以动态添加到NavMeshSurface类的节点下面,形成场景路径的动态变化。
Copyright ©Layabox 2026 all right reserved,powered by LayaAir Engine更新时间: 2026-06-02 11:29:27

results matching ""

    No results matching ""