用于在NavMeshWorld中执行导航操作的对象。
NavMeshQuery操作可以在IJob
、IJobParallelFor
等作业内执行,而不是在相关的NavMesh结构中执行操作。
要在NavMesh上的两个位置之间获取路径,您必须创建一个具有1到65,535之间pathNodePoolSize
值的NavMeshQuery。创建NavMeshQuery后,您必须按以下顺序调用以下方法:BeginFindPath
、UpdateFindPath
(可重复),EndFindPath
、GetPathResult
。这些方法在NavMeshQuery中存储状态数据。其他方法可以按任何顺序调用,因为它们不会更改状态数据。
如果在其编辑器中执行时,任何参数无效,则所有方法都会抛出异常。
注意:NavMeshQuery计划的功能集尚未全部完成。
NavMeshQuery | 创建NavMeshQuery对象并分配内存以存储NavMesh节点信息(如果需要)。 |
BeginFindPath | 在NavMesh上的两个位置之间启动路径查找操作。 |
CreateLocation | 返回用户提供的位置和多边形的Valid NavMeshLocation。 |
Dispose | 销毁NavMeshQuery并释放它使用的所有内存。 |
EndFindPath | 获取在NavMeshQuery.UpdateFindPath操作期间成功计算出的路径中的节点数。 |
GetAgentTypeIdForPolygon | 返回NavMesh烘焙时的代理类型标识符或配置的链接。 |
GetEdgesAndNeighbors | 检索给定节点的顶点和连接到所有导航节点的标识符。 |
GetPathResult | 将NavMeshQuery操作找到的路径形成的NavMesh节点列表复制到提供的数组中。 |
GetPolygonType | 返回NavMesh节点是多边形还是链接。 |
GetPortalPoints | 获取两个相邻NavMesh节点共有的线段端点。 |
IsValid | 如果指定的PolygonId引用的节点在NavMesh中活动,则返回true。 |
MapLocation | 在NavMesh上查找给定世界位置的最接近点及PolygonId。 |
MoveLocation | 将NavMesh位置移动到另一个位置,而不失去与表面的接触。 |
MoveLocations | 将一系列NavMesh位置移动到其他位置,而不失去与表面的接触。 |
MoveLocationsInSameAreas | 给定一个公共区域过滤器,将一系列NavMesh位置移动到其他位置,而不失去与表面的接触。 |
PolygonLocalToWorldMatrix | 获取包含指定NavMesh节点的NavMesh表面的变换矩阵(只读)。 |
PolygonWorldToLocalMatrix | 获取包含指定NavMesh节点的NavMesh表面的逆变换矩阵(只读)。 |
Raycast | 在NavMesh上画一条连接两个点的线。 |
UpdateFindPath | 继续进行中的路径搜索。 |