NavMeshAgent.Raycast
Declaration
public bool Raycast(Vector3 targetPosition, out AI.NavMeshHit hit);Параметры
| Параметр | Описание |
|---|---|
| targetPosition | Желаемое конечное положение движения. |
| хит | Свойства препятствия, обнаруженного лучом (если таковое имеется). |
Возвращаемое значение
логическое True, если между агентом и целевым местом находится препятствие, в противном случае false.
Описание
Проведите прямой путь к целевой позиции в NavMesh без перемещения агента.
Эта функция следует за путем "луча" между позицией агента и указанной позицией цели. Если вдоль линии встречается препятствие, то возвращается истинное значение, а положение и другие детали препятствующего объекта сохраняются в параметре hit. Это может быть использовано для проверки наличия свободного выстрела или линии обзора между персонажем и объектом цели. Эта функция предпочтительнее аналогичных Physics.Raycast, так как трассирование линии выполняется более простым способом с использованием navmesh и имеет меньшую нагрузку на обработку.
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. } } }