Legacy Documentation: Version 4.6(go to latest)
Language: English
  • C#
  • JS
  • Boo

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

NavMesh.Raycast

public static function Raycast(sourcePosition: Vector3, targetPosition: Vector3, hit: NavMeshHit, passableMask: int): bool;

Parameters

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.

Returns

bool True if the ray is terminated before reaching target position. Otherwise returns false.

Description

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. } }