お電話でのお問い合わせ
電話をかける
電話をかける メニューボタン
お知らせカリキュラム・料金教室紹介無料体験授業

フタバゼミ
ゼミノート

【Unity C#】Raycastによる接地判定

Raycastを使って、地面の接触判定をつくってみましょう。

Cubeの下にRayを出して可視化。

床に接地していればTrue、離れるとFalseを返し、コンソールに表示させます。

このようなRaycastを使えば、より詳細に、当たり判定を設けることができます。

関連記事:
【Unity C#】Raycastによる特定オブジェクトの接触判定
【Unity C#】左右にRaycastの接触判定をつくる
【Unity C#】斜めに向けたRaycastで衝突判定

Debug.DrawRayによる可視化

平面とCubeを作成し、Cubeを地上に出します。

Cubeにリジッドボディを追加します。

ジャンプの動きと、Raycastの接地判定、可視化のプログラムを作成します。

CubeJump.csを作成し、Cubeに追加します。

ゲームプレイして、シーンビューを見てみましょう。

Rayが下方向に向かって、赤線で表示されています。

rayPositionには、Rayのスタート位置を格納しています。

今回、スタート位置はすべて0としていますが、プレーヤーを基準として、座標で細かく設定することができます。

rayには、スタート位置と、Rayを飛ばす方向を格納。

Vector3.downは下方向を指します。

下方向に向かって、長さ1.0のRayが出現。

これを、bool型のisGroundに入れ、接地判定を行います。

Debug.DrawRayでは、スタート位置、方向と長さ、色を入れて、Rayを目に見える状態にします。

クリックしてジャンプしてみましょう。

接地状態ではtrueに、ジャンプして地面から離れると、falseに変わります。

関連記事:
【Unity C#】Raycastによる特定オブジェクトの接触判定
【Unity C#】左右にRaycastの接触判定をつくる
【Unity C#】斜めに向けたRaycastで衝突判定