Version: 5.5
public static int RaycastNonAlloc (Vector2 origin, Vector2 direction, RaycastHit2D[] results, float distance= Mathf.Infinity, int layerMask= DefaultRaycastLayers, float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity);

パラメーター

minDepth この値以上の Z 座標(深度)を持つオブジェクトのみを含みます。
maxDepth この値以下の Z 座標(深度)を持つオブジェクトのみを含みます。
origin 2D 空間上のレイの原点
direction Ray の方向を表すベクトル
results 結果を受け取る配列
distance Ray を投影する最大距離
layerMask 特定レイヤーのオブジェクトのみを判定するフィルター

戻り値

int 引数の変数に結果が代入されます。

説明

シーンに対してレイを飛ばします

RaycastAll 関数に似ていますが、結果は引数の配列に返されるところが異なります。integer の戻り値はレイがヒットするオブジェクト数( 0 もありえます)ですが、もし返された要素をすべて格納できない場合にリサイズはされません。重要なことは、この結果からメモリ割り当てが行なわれないために、Raycast が頻繁に実行された場合もガベージコレクションのパフォーマンスが改善されます。

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

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