Version: 2020.1
言語: 日本語
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 A vector representing the direction of the ray.
results 結果を受け取る配列
distance The maximum distance over which to cast the ray.
layerMask 特定レイヤーのオブジェクトのみを判定するフィルター

戻り値

int Returns the number of results placed in the results array.

説明

Casts a ray into the Scene.

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

Additionally, this will also detect Collider(s) at the start of the ray. In this case, the ray starts inside the Collider and doesn't intersect the Collider surface. This means that the collision normal cannot be calculated, in which case the returned collision normal is set to the inverse of the ray vector being tested. This can easily be detected because such results are always at a RaycastHit2D fraction of zero.

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