NavMesh.Raycast

static function Raycast (sourcePosition : Vector3, targetPosition : Vector3, out hit : NavMeshHit, passableMask : int) : boolean

Parameters

NameDescription
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

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

JavaScript
    var mesh: NavMesh;
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 (!mesh.Raycast(transform.position, target.position, hit, -1)) {
// Target is "visible" from our position.
}
}

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public NavMesh mesh;
public Transform target;
void Update() {
NavMeshHit hit;
if (!mesh.Raycast(transform.position, target.position, out hit, -1)) {
}
}
}

import UnityEngine
import System.Collections

class example(MonoBehaviour):

public mesh as NavMesh

public target as Transform

def Update():
hit as NavMeshHit
if not mesh.Raycast(transform.position, target.position, hit, -1):
pass