sourcePosition | レイの始点 |
targetPosition | レイの終点 |
hit | レイを飛ばしてヒットしたオブジェクトのプロパティー情報 |
areaMask | レイを飛ばす時、特定のマスクをかけるためにナビメッシュレイヤーを渡すことができる |
bool ターゲット位置に辿りつく前に終点となる場合は true、そうでない場合は false
ナビメッシュ上の二点間でレイを飛ばします
レイが始点から目標に向かってトレースされるとき、Source と Destination の点が NavMesh に最初にマップされます。レイが NavMesh 境界に当たった場合、関数は True を返し、ヒットデータが満たされます。 Source から目標へさえぎるものがない場合、関数は False を返します。
If the raycast terminates on an outer edge, hit.mask
is 0; otherwise it contains the area mask of the blocking polygon.
NavMesh で 2 点の間をエージェントが障害なく歩くことができる場合、確認として使用できます。たとえば、キャラクターがスペースが必要で回避しなければならない場合、キャラクターの場所から複数の方向にキャラクタが回避できる場所を見つけるためにレイを放つことができます。
The Raycast is different from physics ray cast because it works on “2.5D”, on the NavMesh. The difference to physics ray casts is that NavMesh ray casts can detect all kinds of navigation obstructions, such as holes in the ground, and it can also climb up slopes, if the area is navigable.
// TargetReachable using UnityEngine; using UnityEngine.AI;
public class TargetReachable : MonoBehaviour { public Transform target; private NavMeshHit hit; private bool blocked = false;
void Update() { blocked = NavMesh.Raycast(transform.position, target.position, out hit, NavMesh.AllAreas); Debug.DrawLine(transform.position, target.position, blocked ? Color.red : Color.green);
if (blocked) Debug.DrawRay(hit.position, Vector3.up, Color.red); } }
If you want to find the nearest point on the NavMesh, use physics ray cast to find a point in the world. For more information, refer to the Move to Click Point example.
sourcePosition | レイの始点 |
targetPosition | レイの終点 |
hit | レイを飛ばしてヒットしたオブジェクトのプロパティー情報 |
filter | A filter specifying which NavMesh areas can be passed when tracing the ray. |
bool ターゲット位置に辿りつく前に終点となる場合は true、そうでない場合は false
Traces a line between two positions on the NavMesh, subject to the constraints defined by the filter argument.
The line is terminated on outer edges or a non-passable area.