Version: 2017.3

NavMesh.CalculatePath

Cambiar al Manual
public static bool CalculatePath (Vector3 sourcePosition, Vector3 targetPosition, int areaMask, AI.NavMeshPath path);

Parámetros

sourcePosition La posición inicial de la ruta solicitada.
targetPosition La posición final de la ruta solicitada.
areaMask Una máscara de campo bit que especifica qué áreas NavMesh se pueden pasar al calcular una ruta.
path El camino resultante.

Valor de retorno

bool True si se encuentra una ruta completa o parcial y, de lo contrario, false.

Descripción

Calcular una ruta entre dos puntos y almacenar la ruta resultante.

Esta función se puede utilizar para planificar una ruta antes de tiempo para evitar un retraso en el juego cuando se necesita la ruta. Otro uso es comprobar si una posición objetivo es accesible antes de mover el agente.

En contraste con NavMeshAgent.SetDestination, que es una llamada asincrónica, esta función calcula la trayectoria inmediatamente. Esto puede ser una operación costosa para trayectos muy largos y puede causar problemas en la velocidad de frames. Se recomienda hacer sólo unos pocos hallazgos de trayectoria por frame, por ejemplo al evaluar distancias para cubrir puntos.

La ruta devuelta se puede usar para definir la ruta de un agente usando NavMeshAgent.SetPath. El agente debe estar cerca del punto de inicio para que la ruta establecida funcione.

// ShowGoldenPath
using UnityEngine;
using UnityEngine.AI;

public class ShowGoldenPath : MonoBehaviour { public Transform target; private NavMeshPath path; private float elapsed = 0.0f; void Start() { path = new NavMeshPath(); elapsed = 0.0f; }

void Update() { // Update the way to the goal every second. elapsed += Time.deltaTime; if (elapsed > 1.0f) { elapsed -= 1.0f; NavMesh.CalculatePath(transform.position, target.position, NavMesh.AllAreas, path); } for (int i = 0; i < path.corners.Length - 1; i++) Debug.DrawLine(path.corners[i], path.corners[i + 1], Color.red); } }

public static bool CalculatePath (Vector3 sourcePosition, Vector3 targetPosition, AI.NavMeshQueryFilter filter, AI.NavMeshPath path);

Parámetros

sourcePosition La posición inicial de la ruta solicitada.
targetPosition La posición final de la ruta solicitada.
filter A filter specifying the cost of NavMesh areas that can be passed when calculating a path.
path El camino resultante.

Valor de retorno

bool True si se encuentra una ruta completa o parcial y, de lo contrario, false.

Descripción

Calculates a path between two positions mapped to the NavMesh, subject to the constraints and costs defined by the filter argument.