Unity 6.3
0 онлайн 1 гость 3 в системе
Вход

NavMeshAgent.CalculatePath

Declaration

public bool CalculatePath(Vector3 targetPosition, AI.NavMeshPath path);

Параметры

Параметр Описание
targetPosition Конечное положение запрошенного пути.
путь Полученный путь.

Возвращаемое значение

логическое True, если обнаружен полный или частичный путь. False в противном случае.

Описание

Вычислить путь к указанной точке и сохранить полученный путь.

Используйте эту функцию, чтобы избежать задержек в игре путем планирования пути до того, как он потребуется. Вы также можете использовать эту функцию, чтобы проверить, достижима ли целевая позиция перед перемещением агента. Функция учитывает расстояние агента areaMask, agentTypeID и расходы на местах свойства при поиске соответствующего пути.

Эта функция является синхронной. Она выполняет поиск пути немедленно, что может негативно повлиять на частоту кадров при обработке очень длинных путей. Рекомендуется выполнять только несколько поисков пути на кадр, например, при оценке расстояний до точек покрытия.

Используйте возвращенный путь, чтобы установить путь для этого агента или агента того же типа с NavMeshAgent.SetPath. Для SetPath чтобы работать, агент должен быть близко к начальной точке и иметь возможность перемещаться через Тип зоны где находится начальная точка.

using UnityEngine;
using UnityEngine.AI;

[RequireComponent(typeof(NavMeshAgent))] public class ExampleClass : MonoBehaviour { public Transform target;

void Start() { if (target == null) return;

var agent = GetComponent<NavMeshAgent>(); var path = new NavMeshPath(); agent.CalculatePath(target.position, path); switch (path.status) { case NavMeshPathStatus.PathComplete: Debug.Log($"{agent.name} will be able to reach {target.name}."); break; case NavMeshPathStatus.PathPartial: Debug.LogWarning($"{agent.name} will only be able to move partway to {target.name}."); break; default: Debug.LogError($"There is no valid path for {agent.name} to reach {target.name}."); break; } } }