Version: 2022.3
言語: 日本語
public static int LinecastNonAlloc (Vector2 start, Vector2 end, RaycastHit2D[] results, int layerMask= DefaultRaycastLayers, float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity);

パラメーター

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

戻り値

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

説明

Casts a line against Colliders in the Scene. Note: This method will be deprecated in a future build and it is recommended to use Linecast instead.

Linecast とはワールド空間の 2点間に張った仮想の線です。このセンサーと接触したオブジェクトはすべて検知され報告されます。Raycast と似ていますが、その違いは Raycast の場合は原点と方向で線を指定するということです。

This function is similar to the LinecastAll function except that the results are returned in the supplied array. The integer return value is the number of objects that intersect the line (possibly zero) but the results array will not be resized if it doesn't contain enough elements to report all the results. The significance of this is that no memory is allocated for the results and so garbage collection performance is improved when linecasts are performed frequently. The line is assumed to run from its start point to its end point; Colliders will be placed in the returned array in order of distance from the start of the line.

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

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