アクションゲームを作成していると色々なトラップを作成したくなるものです。
今回は、プレイヤーが特定の床に乗ったらその床を垂直落下させたいと思います。
【Unity】プレイヤーが乗ったら垂直に落下する床の作成
まずは、トラップとなる床を作成します。
今回は分かりやすいように、赤い部分が落下する床とします。私の場合は床というよりもブロックといった感じですね。オブジェクトもCubeを使って作成しています。
Cubeを複製してMeshRendererのチェックを消しやや上に持ち上げます。
複製したCubeは元のCubeの子オブジェクトにしておきます。
子オブジェクトのCubeを選択してIs Triggerにチェックを入れます。
スクリプトの作成
続いて、落下させるためのスクリプトを書きます。
自身が動かすキャラクターに「Player」等のタグを設定して、キャラクターが床に触れたらGravityをtrueにするというシンプルな内容です。
Rigidbodyの設定
子オブジェクトのCubeに先ほど作成したスクリプトをアタッチします。
Drop Floorには親オブジェクトのCubeを設定します。
親CubeにRigidbodyをアタッチします。
垂直落下させたいので親Cubeの「Constraints」は画像のように変更します。
すると、このようにCubeが垂直に落下します。