Version: 5.6
public bool SamplePathPosition (int areaMask, float maxDistance, out AI.NavMeshHit hit);


areaMask パスをトレースするときに特定のマスクをかけるためにナビメッシュレイヤーを渡すことができる
maxDistance パス上のヒット情報を取得する距離
hit 一番近い辺のヒット情報


bool ヒット情報を取得する距離までの間にヒットしなければ true、そうでない場合は false



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.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Transform target; public NavMesh mesh; private NavMeshAgent agent; private int waterMask;

void Start() { agent = GetComponent<NavMeshAgent>(); waterMask = 1 << NavMesh.GetAreaFromName("Water"); agent.SetDestination(target.position); }

void Update() { NavMeshHit hit;

// Check all areas one length unit ahead. if (!agent.SamplePathPosition(NavMesh.AllAreas, 1.0F, out hit)) if ((hit.mask &amp; waterMask) != 0) { // Water detected along the path... } } }