Version: 5.3 (switch to 5.4b)
IdiomaEnglish
  • C#
  • JS

Idioma de script

Selecciona tu lenguaje de programación favorito. Todos los fragmentos de código serán mostrados en este lenguaje.

NavMeshAgent.Raycast

Sugiere un cambio

¡Éxito!

Gracias por ayudarnos a mejorar la calidad de la documentación de Unity. A pesar de que no podemos aceptar todas las sugerencias, leemos cada cambio propuesto por nuestros usuarios y actualizaremos los que sean aplicables.

Cerrar

No se puedo enviar

Por alguna razón su cambio sugerido no pudo ser enviado. Por favor <a>intente nuevamente</a> en unos minutos. Gracias por tomarse un tiempo para ayudarnos a mejorar la calidad de la documentación de Unity.

Cerrar

Cancelar

Cambiar al Manual
public function Raycast(targetPosition: Vector3, out hit: NavMeshHit): bool;
public bool Raycast(Vector3 targetPosition, out NavMeshHit hit);

Parámetros

targetPosition The desired end position of movement.
hit Properties of the obstacle detected by the ray (if any).

Valor de retorno

bool True if there is an obstacle between the agent and the target position, otherwise false.

Descripción

Trace a straight path towards a target postion in the NavMesh without moving the agent.

This function follows the path of a "ray" between the agent's position and the specified target position. If an obstruction is encountered along the line then a true value is returned and the position and other details of the obstructing object are stored in the hit parameter. This can be used to check if there is a clear shot or line of sight between a character and a target object. This function is preferable to the similar Physics.Raycast because the line tracing is performed in a simpler way using the navmesh and has a lower processing overhead.

var target: Transform;

private var agent: NavMeshAgent;

function Start () { agent = GetComponent.<NavMeshAgent>(); }

function Update() { var hit: NavMeshHit; // Note the negative test condition! if (!agent.Raycast(target.position, hit)) { // Target is "visible" from our position. } }
using UnityEngine;
using System.Collections;

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)) { } } }