sourcePosition | クエリとなる距離の原点 |
hit | 一番近い辺のヒット情報 |
areaMask | もっとも近い辺を求めるときに特定のマスクをかけるためにナビメッシュレイヤーを渡すことができる |
bool もっとも近い辺が見つかった場合は true
特定の位置からもっとも近いナビメッシュオブジェクトの辺の情報を取得します
返される NavMeshHit オブジェクトは NavMesh の最寄りの端に最も近いポイントの位置と詳細が含まれています。 これを使用してエージェントの周りにどのくらいの余分なスペースがあるか参照するために使用できます。
// MeasureSpaceAround.cs using UnityEngine; using System.Collections; public class MeasureSpace : MonoBehaviour { void DrawCircle(Vector3 center, float radius, Color color) { Vector3 prevPos = center + new Vector3(radius, 0, 0); for (int i = 0; i < 30; i++) { float angle = (float)(i+1) / 30.0f * Mathf.PI * 2.0f; Vector3 newPos = center + new Vector3(Mathf.Cos(angle)*radius, 0, Mathf.Sin(angle)*radius); Debug.DrawLine(prevPos, newPos, color); prevPos = newPos; } } void Update() { NavMeshHit hit; if (NavMesh.FindClosestEdge(transform.position, out hit, NavMesh.AllAreas)) { DrawCircle(transform.position, hit.distance, Color.red); Debug.DrawRay(hit.position, Vector3.up, Color.red); } } }