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

NavMeshQuery.MapLocation

切换到手册
public Experimental.AI.NavMeshLocation MapLocation (Vector3 position, Vector3 extents, int agentTypeID, int areaMask);

参数

position 世界位置,需要在其中找到导航网格上最近的点。
extents 从指定的 position 沿所有三个轴展开的最大距离,在该距离内搜索导航网格表面。
agentTypeID 应为此操作选择其导航网格表面的代理类型的标识符。“Humanoid”代理类型存在于所有导航网格中,且 ID 为 0。其他代理类型可以通过 Editor 手动定义。需要为每种代理类型烘焙单独的导航网格表面。
areaMask 位掩码,用于表示应该采样(值为 1)或不应该(值为 0)采样的导航网格区域。此参数是可选的,如果未指定,则默认为 NavMesh.AllAreas。另请参阅:Areas and Costs

返回

NavMeshLocation 在 NavMesh 上找到某个点时,则是带有位置和有效 PolygonId 的对象。
在搜索区域内未找到带有所需功能的 NavMesh 表面时,则为无效对象。另请参阅:NavMeshQuery.IsValid

描述

针对给定世界位置,找到导航网格上最近的点和 PolygonId

对于一种或多种所需区域类型,搜索仅适用于指定类型的导航网格表面,并且仅限于指定的搜索区域内。它不会搜索 NavMeshLinksOff-mesh Links 上的位置。

位于指定位置正上方或下方的附近导航网格表面是首选。如果没有在指定的搜索范围内进行向上或向下,则会对最靠近侧面的表面进行采样。

另请参阅:NavMesh.SamplePosition