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 UnityEngine.AI; using System.Collections;
public class ExampleClass : MonoBehaviour { public Transform target; 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 & waterMask) != 0) { // Water detected along the path... } } }