Name | Description |
---|---|
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. |
boolean - True If terminated before reaching position at maxDistance. Otherwise returns false.
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 example : 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
class example(MonoBehaviour):
public target as Transform
public mesh as NavMesh
private agent as NavMeshAgent
private waterLayer as int
def Start():
agent = GetComponent[of NavMeshAgent]()
waterLayer = mesh.GetNavMeshLayerFromName('Water')
agent.SetDestination(target.position)
def Update():
hit as NavMeshHit
if not agent.SamplePathPosition(-1, 1.0F, hit):
if hit.mask & waterLayer:
pass