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

パラメーター

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

戻り値

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

説明

現在の経路に沿って位置をサンプリングします

この関数は現在の経路に沿って、指定した距離だけサンプリングを行います。 その位置におけるメッシュの詳細が NavMeshHit オブジェクトとして返されます。これを使用して、例えば キャラクターが辿りつく前に、地表の種類を確かめることができます。例えば、エージェントが現在、深い水の中を移動していると、キャラクターのアニメーションは駆け足から、苦しい歩行に変わるかもしれません。

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... } } }