フィードバック
ありがとうございます
この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。
閉じる
送信に失敗しました
なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。
閉じる
マニュアルに切り替える
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
パラメーター
origin |
ワールド座標でのレイの開始地点 |
direction |
レイの方向 |
maxDistance |
レイが衝突を検知する最大距離 |
layerMask |
レイヤーマスクはレイキャストするときに選択的に衝突を無視するために使用します。 |
queryTriggerInteraction |
トリガーに設定されているものも検索対象にするか |
戻り値
bool
レイが任意のコライダーと交わる場合は true、それ以外は false
説明
シーンにあるすべてのコライダーに対して、 origin
の位置から direction
の方向に maxDistance
の距離だけレイを投じます。
衝突させたくないコライダーに反応させないために、オプションで LayerMask を指定することもできます。
queryTriggerInteraction
か、グローバル設定である Physics.queriesHitTriggers を使用してトリガーに設定されているコライダーとヒットさせるかを管理できます。
以下の例ではオブジェクトの現在位置から前方へ距離 10 ユニットのレイを投影するシンプルな Raycast を作成します。
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
void FixedUpdate()
{
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, fwd, 10))
print("There is something in front of the object!");
}
}
注意: Raycast は、その原点がコライダーの内側にある場合そのコライダーを検知しません。
コライダーをスクリプトやアニメーションで移動させる場合、物理ライブラリが更新されて Raycast が新しい位置に当たるよう最低でも1度 FixedUpdate の実行を待つ必要があります。
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
origin:
Vector3,
direction:
Vector3,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Vector3 origin,
Vector3 direction,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
パラメーター
origin |
ワールド座標でのレイの開始地点 |
direction |
レイの方向 |
hitInfo |
もし true が返されると hitInfo にはコライダーのヒットに関する詳細情報が含まれるようになります。(関連項目: RaycastHit) |
maxDistance |
レイが衝突を検知する最大距離 |
layerMask |
レイヤーマスク はレイキャストするときに選択的に衝突を無視するために使用します。 |
queryTriggerInteraction |
トリガーに設定されているものも検索対象にするか |
戻り値
bool
レイが任意のコライダーと交わる場合は true、それ以外は false
説明
シーン内のすべてのコライダーに対してレイを飛ばし、ヒットした情報を取得します
以下は現在のオブジェクトとヒットしたコライダー間の距離を報告する例です。
using UnityEngine;
public class RaycastExample : MonoBehaviour
{
public Missile missile;
void FixedUpdate()
{
RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit))
print("Found an object - distance: " + hit.distance);
}
}
以下はレイの投射距離を制限する maxDistance
パラメータを説明する例です。
using UnityEngine;
public class RaycastExample : MonoBehaviour
{
public Missile missile;
void FixedUpdate()
{
RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0f))
print("Found an object - distance: " + hit.distance);
}
}
public static function
Raycast(
ray:
Ray,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
ray:
Ray,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
ray:
Ray,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
ray:
Ray,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
パラメーター
ray |
レイの始点と方向 |
maxDistance |
レイが衝突を検知する最大距離 |
layerMask |
レイヤーマスク はレイキャストするときに選択的に衝突を無視するために使用します。 |
queryTriggerInteraction |
トリガーに設定されているものも検索対象にするか |
戻り値
bool
レイが任意のコライダーと交わる場合は true、それ以外は false
説明
上記と同様ですが ray.origin
と ray.direction
を、origin および direction の代わりに使用します
public static function
Raycast(
ray:
Ray,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
ray:
Ray,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
ray:
Ray,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
public static function
Raycast(
ray:
Ray,
out
hitInfo:
RaycastHit,
maxDistance: float = Mathf.Infinity,
layerMask: int = DefaultRaycastLayers,
queryTriggerInteraction:
QueryTriggerInteraction = QueryTriggerInteraction.UseGlobal):
bool;
public static bool
Raycast(
Ray ray,
out
RaycastHit hitInfo,
float
maxDistance = Mathf.Infinity,
int
layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
パラメーター
ray |
レイの始点と方向 |
hitInfo |
もし true が返されると hitInfo にはコライダーのヒットに関する詳細情報が含まれるようになります。(関連項目: RaycastHit) |
maxDistance |
レイが衝突を検知する最大距離 |
layerMask |
レイヤーマスク はレイキャストするときに選択的に衝突を無視するために使用します。 |
queryTriggerInteraction |
トリガーに設定されているものも検索対象にするか |
戻り値
bool
レイが任意のコライダーと交わる場合は true、それ以外は false
説明
上記と同様ですが ray.origin
と ray.direction
を、origin および direction の代わりに使用します
以下は衝突が検知されている間レイの長さに沿った線を描画する例です。