Параметры
targetPosition | Желаемое конечное положение движения. |
hit | Свойства обнаруженного лучом препятствия (если есть). |
Возвращает
bool true, если между агентом и целевой позицией есть препятствие, в противном случае — false.
Описание
Проследите прямой путь к целевой позиции в NavMesh, не перемещая агента.
Эта функция отслеживает путь «луча» между позицией агента и указанной целевой позицией. Если на линии встречается препятствие, возвращается истинное значение, а положение и другие сведения о препятствующем объекте сохраняются в параметре hit
. Это можно использовать для проверки наличия четкого выстрела или прямой видимости между персонажем и целевым объектом. Эта функция предпочтительнее аналогичной Physics.Raycast, поскольку трассировка линий выполняется более простым способом с использованием навигационной сетки и требует меньших затрат на обработку.
using UnityEngine;
using UnityEngine.AI;
public class ExampleClass : MonoBehaviour
{
public Transform target;
private NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
}
void Update()
{
NavMeshHit hit;
if (!agent.Raycast(target.position, out hit))
{
// Target is "visible" from our position.
}
}
}