sourcePosition | 此距离查询的原点。 |
hit | 保留所生成位置的属性。 |
areaMask | 位域遮罩,指定在查找最近边缘时可通过的导航网格区域。 |
bool 如果找到最近边缘,则为 true。
从导航网格上的一点找到最近的导航网格边缘。
返回的 NavMeshHit 对象包含 导航网格最近边缘上的 最近点的位置和详细信息。这可用于查询代理周围有多少额外空间。
// MeasureSpace
using UnityEngine;
using UnityEngine.AI;
public class MeasureSpace : MonoBehaviour
{
void DrawCircle(Vector3 center, float radius, Color color)
{
Vector3 prevPos = center + new Vector3(radius, 0, 0);
for (int i = 0; i < 30; i++)
{
float angle = (float)(i + 1) / 30.0f * Mathf.PI * 2.0f;
Vector3 newPos = center + new Vector3(Mathf.Cos(angle) * radius, 0, Mathf.Sin(angle) * radius);
Debug.DrawLine(prevPos, newPos, color);
prevPos = newPos;
}
}
void Update()
{
NavMeshHit hit;
if (NavMesh.FindClosestEdge(transform.position, out hit, NavMesh.AllAreas))
{
DrawCircle(transform.position, hit.distance, Color.red);
Debug.DrawRay(hit.position, Vector3.up, Color.red);
}
}
}
sourcePosition | 此距离查询的原点。 |
hit | 保留所生成位置的属性。 |
filter | 一种过滤器,指定在查找最近边缘时可通过的导航网格区域。 |
bool 如果找到最近边缘,则为 true。
从导航网格上的一点找到最近的导航网格边缘,受过滤器参数的限制。
返回的 NavMeshHit 对象包含导航网格最近边缘上的最近点的位置和细节。这可用于查询代理周围有多少额外空间。