Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Physics2D.Linecast

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える
public static function Linecast(start: Vector2, end: Vector2, layerMask: int = DefaultRaycastLayers, minDepth: float = -Mathf.Infinity, maxDepth: float = Mathf.Infinity): RaycastHit2D;
public static RaycastHit2D Linecast(Vector2 start, Vector2 end, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);

Parameters

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

Returns

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

Description

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

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

この関数は線がシーン上のコライダーと接触したとき RaycastHit2D を返します。layerMask は Linecast するときに特定のレイヤーのみ選択的に接触を検知するために使用します(例えば敵キャラクターの場合のみ検知する、など)。線の向きは開始地点から終了地点とみなされます。その向きにおいて最初に検知されてコライダーのみが報告されます。Z 軸は 2D で衝突を検知するにあたって無関係ですが、minDepthmaxDepth 引数を使用して Z 座標に基づいてオブジェクトをフィルタリングできます。

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

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

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

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