NavMesh.FindClosestEdge

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

Parameters

NameDescription
sourcePosition The origin of the distance query.
hit Holds the properties of the resulting location.
passableMask A mask specifying which NavMesh layers can be passed when finding the nearest edge.

Returns

boolean - True if a nearest edge is found.

Description

Locate the closest NavMesh edge from a point on the NavMesh.

The returned NavMeshHit object contains the position and details of the nearest point on the nearest edge of the navmesh. Since an edge typically corresponds to a wall or other large object, this could be used to make a character take cover as close to the wall as possible.

JavaScript
    var mesh: NavMesh;
var player: Transform;
// Move a marker object to show a position of cover
// that the player should head for.
function IndicateCoverPosition() {
var hit: NavMeshHit;

if (mesh.FindClosestEdge(player.position, hit, -1)) {
transform.position = hit.position;
}
}

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public NavMesh mesh;
public Transform player;
void IndicateCoverPosition() {
NavMeshHit hit;
if (mesh.FindClosestEdge(player.position, out hit, -1))
transform.position = hit.position;

}
}

import UnityEngine
import System.Collections

class example(MonoBehaviour):

public mesh as NavMesh

public player as Transform

def IndicateCoverPosition():
hit as NavMeshHit
if mesh.FindClosestEdge(player.position, hit, -1):
transform.position = hit.position