Experimental: this API is experimental and might be changed or removed in the future.

NavMeshQuery

struct in UnityEngine.Experimental.AI

切换到手册

描述

用于在 NavMeshWorld 中执行导航操作的对象。

NavMesh 相关结构中的操作相反,可以在作业(IJobIJobParallelFor)内执行 NavMeshQuery 操作。

要获取导航网格上两个位置之间的路径,必须使用大于 0 的 pathNodePoolSize 值创建查询,并且需要按顺序调用以下方法:/BeginFindPath/、/UpdateFindPath/(必要时反复调用)、/EndFindPath/、/GetPathResult/。这些方法依赖于在 NavMeshQuery 中存储一些状态数据,但所有其他方法都不会更改对象的状态,并且可以随时调用。

在 Editor 中执行时,如果任何参数无效,则所有方法都会抛出异常。

注意:NavMeshQuery 的预期功能集还没有完全完成。

构造函数

NavMeshQuery创建 NavMeshQuery 对象并分配内存以存储导航网格节点信息(如果需要)。

公共函数

BeginFindPath在导航网格上的两个位置之间启动寻路操作。
CreateLocation`返回用户提供的位置和多边形的有效 NavMeshLocation。
Dispose销毁 NavMeshQuery 并释放它使用的所有内存。
EndFindPath获取在成功的 NavMeshQuery.UpdateFindPath 操作期间计算的路径中的节点数量。
GetAgentTypeIdForPolygon返回为导航网格烘焙的或已经配置链接的代理类型的标识符。
GetPathResult复制到提供的数组中,这是构成通过 NavMeshQuery 操作找到的路径的导航网格节点的列表。
GetPolygonType返回导航网格节点是多边形还是链接。
GetPortalPoints获取两个相邻导航网格节点共有线段的端点。
IsValid如果指定 PolygonId 引用的节点在导航网格中处于活动状态,则返回 true。
MapLocation针对给定世界位置,找到导航网格上最近的点和 PolygonId。
MoveLocation将导航网格位置移动到另一个位置,且不会与表面失去接触。
MoveLocations将一系列导航网格位置移动到其他位置,且不会与表面失去接触。
MoveLocationsInSameAreas将一系列导航网格位置移动到其他位置,且不会与表面失去接触,并为所有位置给定一个公共区域过滤器。
PolygonLocalToWorldMatrix返回包含指定导航网格节点 (Read Only) 的导航网格表面的变换矩阵。
PolygonWorldToLocalMatrix返回包含指定导航网格节点 (Read Only) 的导航网格表面的反向变换矩阵。
UpdateFindPath继续进行正在进行的路径搜索。
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961