Version: 2018.2
public static RaycastHit2D[] LinecastAll (Vector2 start, Vector2 end, int layerMask= DefaultRaycastLayers, float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity);

パラメーター

startワールド座標での線の開始地点
endワールド座標での線の終了地点
layerMask特定のレイヤーのコライダーのみを判別するためのフィルター
minDepthこの値以上の Z 座標(深度)を持つオブジェクトのみを含みます。
maxDepthこの値以下の Z 座標(深度)を持つオブジェクトのみを含みます。

戻り値

RaycastHit2D[] 投げかけた結果が返されます。

説明

シーン上のコライダーに対して線がヒットするか調べます

Linecast とはワールド座標上の二点間に張った仮想の線です。このセンサーと接触した任意オブジェクトを検知して報告することができます。

Linecast 関数と似ていますが、この場合は接触したすべてのコライダーが報告されます。線が開始地点から終了地点までの向きとすると、開始地点からの距離順にコライダーが並べられます。Linecast は視界の範囲の判定、銃弾とターゲットの当たり判定、さらに多くのゲームシーンで役に立ちます。

Linecast は視界の範囲の判定、銃弾によりターゲットの当たり判定、さらに多くのゲームシーンで役に立ちます。

この関数は返された RaycastHit2D 配列にメモリ割り当てを行ないます。LinecastNonAlloc を使用して、そのようなコールを頻繁に行なう必要があればこのオーバーヘッドを回避できます。

さらにこの関数は線の開始地点のコライダーを検知します。この場合線がコライダーの中で開始していてコライダーの表面と交差していません。つまり返された衝突の法線がテストする線のベクトルの反対にセットされた場合、衝突の法線が計算できません。このような結果は RaycastHit2D の 0 地点で得られるため、これを検知するのは容易です。

関連項目: LayerMask クラス、RaycastHit2D クラス、LinecastLinecastNonAllocDefaultRaycastLayersIgnoreRaycastLayerraycastsHitTriggers.