sourcePosition | The origin of the ray. |
targetPosition | The end of the ray. |
hit | Holds the properties of the ray cast resulting location. |
passableMask | A mask specifying which NavMesh layers can be passed when tracing the ray. |
bool True if the ray is terminated before reaching target position. Otherwise returns false.
Trace a line between two points on the NavMesh.
This function follows the path of a "ray" between the specified source
and target positions on the navmesh. 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; function Update () { var hit: NavMeshHit; // Note the negative test condition! Using -1 for the mask // indicates all layers are to be used. if (!NavMesh.Raycast(transform.position, target.position, hit, -1)) { // Target is "visible" from our position. } }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform target; void Update() { NavMeshHit hit; if (!NavMesh.Raycast(transform.position, target.position, out hit, -1)) { } } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public target as Transform def Update() as void: hit as NavMeshHit if not NavMesh.Raycast(transform.position, target.position, , -1): pass