Объявление
public static bool FindClosestEdge(Vector3 sourcePosition, out AI.NavMeshHit hit, int areaMask);Параметры
sourcePosition | Происхождение запроса расстояния. |
hit | Содержит свойства полученного местоположения. |
areaMask | Маска битового поля, указывающая, какие области NavMesh можно передать при поиске ближайшего ребра. |
Возвращает
bool true, если найдено ближайшее ребро.
Описание
Найдите ближайшее ребро NavMesh от точки на NavMesh.
Возвращенный объект 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);
}
}
}
Объявление
public static bool FindClosestEdge(Vector3 sourcePosition, out AI.NavMeshHit hit, AI.NavMeshQueryFilter filter);Параметры
sourcePosition | Происхождение запроса расстояния. |
hit | Содержит свойства результирующего местоположения. |
filter | Фильтр, указывающий, какие области NavMesh можно пропустить при поиске ближайшего ребра. |
Возвращает
bool true, если найдено ближайшее ребро.
Описание
Находит ближайшее ребро NavMesh от точки в NavMesh с учетом ограничений аргумента фильтра.
Возвращенный объект NavMeshHit содержит положение и сведения о ближайшей точке на ближайшем краю NavMesh. Это можно использовать для запроса объема дополнительного пространства вокруг агента.