前回までの作業で、今回作る脱出ゲーム用のシーンが完成しました。次はゲームの仕組み部分を作っていきましょう。
手始めにこのページでは「ボタンを押すとカメラがY軸方向に90度回転する」というシンプルな視点操作処理を作っていきます。C#スクリプトを書くことになりますが、難しい処理は使わないシンプルな方法を使うので準備運動だと思って取り組んでみてください。
完成したカメラ操作処理の見本は次の通りです。
主な作業手順は次の2ステップがあります。
- カメラを回転させるためのC#スクリプトを書く
- カメラ操作を行うためのUIを作る
では早速作っていきましょう。
カメラ操作を行うC#スクリプトの作成
まずはカメラ操作を行うC#スクリプトを書きます。適当なフォルダに「CameraController」という名前の新規C#スクリプトを作り、次のコードを書いてください。
using UnityEngine; public class CameraController : MonoBehaviour { Transform cameraTransform; void Start() { cameraTransform = Camera.main.transform; } // カメラをY軸方向に回転させるメソッド // ボタンを通じて呼び出すので、このスクリプト内では定義しておくだけ public void RotateCamera(float angle) { if(angle == 0) { return; } cameraTransform.localRotation = Quaternion.Euler(Vector3.up * angle) * cameraTransform.localRotation; } }
書けたらこれをメインカメラにアタッチしておきましょう。
カメラ操作を行うためのUIの作成
次にカメラ操作を行うためのUIを作ります。
UIを配置するためのキャンバスの作成
まず、UnityでUIを配置するためにはキャンバスが必要です。そこで最初にインポートしてもらった「くろくま基本アセット2」の中にある設定済みのキャンバスのプレハブ(KurokumaBasicAssets2/Prefabs/UI/Canvasフォルダ内)をシーンにドラッグ&ドロップしましょう。
カメラ操作用ボタンの作成&設定
そうしたら、そのキャンバスの子としてボタンを2つ配置します。ボタンはKurokumaBasicAssets2/Prefabs/UIフォルダ内にあるので、よかったらそれを使ってください。ボタンの見た目やテキストを適当に変えて左右に配置すればOKです。お手本は次の通り。
配置できたら、次はボタンのクリックイベントにカメラ操作スクリプトのメソッドを登録します(※こうすることでいちいちスクリプトを書かなくてもカメラ回転処理を呼び出せます)。
やり方は簡単です。図のようにインスペクターでボタンコンポーネントを表示し、「クリック時()」のところの
- 左下の欄にメインカメラをドラッグ&ドロップ
- 右上のメニューから「CameraController.RotateCamera」を選択
- 右下の欄に回転量(左を向くボタンなら「-90」、右を向くボタンなら「90」)を指定
してください。
イベントシステムの作成
さてこれで完成かと思いきや、このままではゲームを実行してもボタンが反応しません。その理由はUIの動作に必要な「イベントシステム」をまだシーンに配置していないからです。
そこでイベントシステムを作ってシーンに配置しましょう。こちらは右クリックメニューから新しく作ってもいいですし、くろくま基本アセット2のPrefabsフォルダ内にあるプレハブをシーンにドラッグ&ドロップしてもいいです。
ゲームを実行して動作を確認する
では最後に実際にゲームを再生して動作を確認してみましょう。冒頭のお手本のようにボタンを押したら視点が90度回転すれば成功です。