Unity事例ノート

UNITY

ジャンプで壁に触れると引っ付く

壁に向かってジャンプして、触れると落下せずにストップできる仕組みをつくってみましょう。

クリックした方向に向かってCubeがジャンプ。

壁のオブジェクトにぶつかると、落ちていかずに、その場所にくっつくようにします。

関連記事:
クリックした方向へジャンプする
左右にRaycastの接触判定をつくる
Raycastによる接地判定
着地していればジャンプ可能

壁オブジェクトに触れるとくっつく

平面とCubeを作成します。

CubeのY座標を0.5にして、リジッドボディを追加します。

Cubeにわかりやすい色をつけます。

シーンビューではこのように配置されています。

Cubeがひっくり返らないように、回転を固定します。

リジッドボディのConstraintsを展開し、回転を固定にチェックを入れます。

もう一つCubeを作成し、名前をWallに変更。

座標とサイズを変更し、壁オブジェクトを作ります。

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

CubeJump.csを記述します。

ゲームプレイしましょう。

クリックでジャンプして、壁にぶつかれば、その場でストップ。

逆方向に向けてクリックすれば、壁から離れてジャンプします。

Cubeの中心から、RayCastを右方向に向けて0.5出しています。

RayCastに触れると、リジッドボディのisKinematicがTrueに。

クリックすると、isKinematicがfalseとなって、再びジャンプ可能になります。

関連記事:
クリックした方向へジャンプする
左右にRaycastの接触判定をつくる
Raycastによる接地判定
着地していればジャンプ可能