sourcePosition | El origen del rayo. |
targetPosition | El final del rayo. |
hit | Mantiene las propiedades de la ubicación resultante del ray cast. |
areaMask | Una máscara de campo de bit que especifica qué áreas NavMesh se pueden pasar cuando se hace un seguimiento del rayo. |
bool True si el rayo se termina antes de alcanzar la posición objetivo. De lo contrario devuelve false.
Trace una linea entre dos puntos en el NavMesh.
Los puntos de origen y de destino se asignan en primer lugar en el NavMesh, a continuación, un rayo se traza desde el punto de origen hacia el destino. Si el rayo alcanza un límite de NavMesh, la función devuelve true y los datos de golpe se llenan. Si la ruta de acceso entre el origen y el destino no está obstruida, la función devuelve false.
Si el raycast termina en un borde exterior; Hit.mask es 0. De lo contrario, contiene la máscara de área del polígono de bloqueo.
Esta función se puede utilizar para comprobar si un agente puede caminar sin obstáculos entre dos puntos en el NavMesh. Por ejemplo, si su personaje tiene un movimiento evasivo de esquivar que necesita espacio, puede disparar un rayo desde la ubicación de los personajes a múltiples direcciones para encontrar un lugar donde el personaje pueda esquivar.
El NavMesh.Raycast es diferente de la física de rayos emitidos, ya que funciona en "2.5D", en el NavMesh. La diferencia con el raycast de física es que la versión de NavMesh puede detectar todo tipo de obstrucciones de navegación, como agujeros en el suelo, y también puede subir las pendientes, si el área es navegable.
// TargetReachable.cs using UnityEngine; using System.Collections; public class TargetReachable : MonoBehaviour { public Transform target; private NavMeshHit hit; private bool blocked = false; void Update() { blocked = NavMesh.Raycast(transform.position, target.position, out hit, NavMesh.AllAreas); Debug.DrawLine(transform.position, target.position, blocked ? Color.red : Color.green); if (blocked) Debug.DrawRay(hit.position, Vector3.up, Color.red); } }
Si usted está buscando para encontrar el punto más cercano en el NavMesh NavMesh debe utilizar la física raycast para encontrar un punto en el mundo, mirar el ejemplo Move to Click Point.