[Unity]ステージとカメラを動かすスクリプトの作成

今回は、アクションゲームにおけるステージを作成します。

足場オブジェクトを配置していますが1個しかない状況なので、まずはPrefabにすることから始めたいと思います。

スポンサーリンク

ジャンプアクションのステージを作成する

足場オブジェクトのPrefabを作成

Prefabの作り方は過去の記事でも触れましたが、ヒエラルキーウィンドウにある対象のオブジェクトをプロジェクトウィンドウにドラッグ&ドロップすればOKです。

名前は「fieldPrefab」としておきます。

作ったPrefabからインスタンスを作成

今作ったPrefabのインスタンスを作成するため、プロジェクトウィンドウ内の「fieldPrefab」をシーンビューにドロップ&ドラッグします。

この作業で足場オブジェクトを量産できるので、ステージを作れるようになりますね。

フィールドのプレハブを作成してシーンビューに配置

こんな感じで適当に足場を配置しました。上に進むにつれて難しくなるのが一般的だと思うので、ゴール付近は足場の数を減らしたり、ジャンプしてぎりぎり届く距離にしておく事で難易度を調整できると思います。

ゴールを作る

ゴールと分かるような旗をペイントで自作しました。

この旗を一番上にある雲に立てることでゴールと一目で分かりますね。

ジャンプアクションゲームのゴール地点

こんな感じですね。簡易的ですがゴールと分かるようなら問題ないでしょう。

プレイヤーのジャンプに合わせてカメラを動かすスクリプトの作成

このまま実行すると、カメラがプレイヤーの動きについてこないので、プレイヤーが上部に行くと見切れてしまいます。

カメラもオブジェクトと同じようにスクリプトを書いて動かします。

プレイヤーの動きに合わせてカメラが移動するスクリプト

ジャンプして上に登っていくゲームですので、注目すべきはY座標ですね。

フレーム毎に、プレイヤーの座標を調べてプレイヤーのY座標をカメラのY座標に反映させるようにします。XとZは無関係ですので、そのままの座標を代入しています。

スクリプトを作ったら「Main Camera」にアタッチしましょう。

ゲームを実行して、プレイヤーの移動と共にカメラが追いかけてくるか確認します。

プレイヤーの動きにカメラが追従する様子

このように、プレイヤーが画面外にジャンプした際にちゃんとカメラが追従してくれます。

ちゃんと最上部まで登りきることが出来るかチェックしましょう。足場と間隔が広すぎてジャンプが届かない事があるとゴール出来なくなっちゃいますからね!

一応ゴール出来ましたが、アニメーションに対して横の動きが鈍い印象です。ジャンプに関しては特に問題ありませんが、もう少し横移動をスムーズにしたほうが良さそうですね。

歩行アニメーションというより走行アニメーションって感じがしますもんね~。

アニメーションを作り直すか、走行アニメーションとして横移動のスピードを上げるか、この辺は選択肢が何パターンかあるので状況に応じて修正すればいいと思います。