Параметры
areaMask | Маска битового поля, указывающая, какие области NavMesh могут передаваться при отслеживании пути. |
maxDistance | Прекратите сканирование пути на этом расстоянии. |
hit | Содержит свойства полученного местоположения. |
Возвращает
bool true, если завершается до достижения позиции на максимальном расстоянии, в противном случае — false.
Описание
Образец позиции на текущем пути.
Эта функция просматривает заданное расстояние вперед по текущему пути. Детали сетки в этой позиции затем возвращаются в объекте NavMeshHit. Это может быть использовано, например, для проверки типа поверхности, которая находится впереди, прежде чем персонаж доберется до нее — персонаж может поднять свое оружие над головой, скажем, если он собирается перейти воду вброд.
using UnityEngine;
using UnityEngine.AI;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public Transform target;
private NavMeshAgent agent;
private int waterMask;
void Start()
{
agent = GetComponent<NavMeshAgent>();
waterMask = 1 << NavMesh.GetAreaFromName("Water");
agent.SetDestination(target.position);
}
void Update()
{
NavMeshHit hit;
// Check all areas one length unit ahead.
if (!agent.SamplePathPosition(NavMesh.AllAreas, 1.0F, out hit))
if ((hit.mask & waterMask) != 0)
{
// Water detected along the path...
}
}
}