passableMask | A mask specifying which NavMesh layers can be passed when tracing the path. |
maxDistance | Terminate scanning the path at this distance. |
hit | Holds the properties of the resulting location. |
bool True if terminated before reaching the position at maxDistance, false otherwise.
Sample a position along the current path.
This function looks ahead a specified distance along the current path. Details of the mesh at that position are then returned in a NavMeshHit object. This could be used, for example, to check the type of surface that lies ahead before the character gets there - a character could raise his gun above his head if he is about to wade through water, say.
var target: Transform; var mesh: NavMesh; private var agent: NavMeshAgent; private var waterLayer: int; function Start () { agent = GetComponent.<NavMeshAgent>(); waterLayer = mesh.GetNavMeshLayerFromName("Water"); agent.SetDestination(target.position); } function Update() { var hit: NavMeshHit; // Check all layers one unit ahead. if (!agent.SamplePathPosition(-1, 1.0, hit)) { if (hit.mask & waterLayer) { // Water detected along the path... } } }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform target; public NavMesh mesh; private NavMeshAgent agent; private int waterLayer; void Start() { agent = GetComponent<NavMeshAgent>(); waterLayer = mesh.GetNavMeshLayerFromName("Water"); agent.SetDestination(target.position); } void Update() { NavMeshHit hit; if (!agent.SamplePathPosition(-1, 1.0F, out hit)) if (hit.mask & waterLayer) { } } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public target as Transform public mesh as NavMesh private agent as NavMeshAgent private waterLayer as int def Start() as void: agent = GetComponent[of NavMeshAgent]() waterLayer = mesh.GetNavMeshLayerFromName('Water') agent.SetDestination(target.position) def Update() as void: hit as NavMeshHit if not agent.SamplePathPosition(-1, 1.0F, ): if hit.mask & waterLayer: pass