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... } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961