ダンジョンシーンを監督するオブジェクト
ダンジョンシーンを開いてタイトルシーンと同じようにシーンの設定をします。
Directorオブジェクトを作成し、dungeonDirectorスクリプトを作成してアタッチします。
SoundManagerにダンジョンのBGMを再生するメソッドを追加して、DungeonDirectorのStartメソッドで呼び出しましょう。
毎回、実行するためにタイトルシーンに戻すのは面倒臭いのでStartメソッドにGameManagerがインスタンス化されていないときはタイトルシーンに切り替えるというコードを追加しておきます。
これでダンジョンシーンでUnityを実行しても、タイトルシーンから始まるようになります。
DungeonDirector.cs
void Start() { if (GameManager.instance == null) { GameManager.LoadScene("TITLE"); return; } SoundManager.instance.PlayDungeonBGM(); }
ダンジョン画面にステータスウィンドウとボタンを配置
ダンジョンのUIはこんな感じでいこうと思います。ウィンドウ画像とボタン画像は自作です。
上にあるのがステータスウィンドウです。
下にあるのがダンジョンボタンです。
ダンジョンのグラフィックを作成する
レトロ調なRPGとはいえUIだけだとさすがに寂しいのでオブジェクトを配置してダンジョンを表示します。
Cubeオブジェクトをカメラの前にならべるだけでもダンジョンっぽくなりますが、モチベーションアップのためにここはもう少し作り込みます。
壁のマテリアルを作る
ダンジョンの壁として表示するテクスチャを用意します。
ドット絵のマップチップなどをテクスチャとして使って、テクスチャのFilter ModeをPoint(no filter)にしておくとレトロ感が出ます。
プロジェクトウィンドウにMaterialsというフォルダを作り、
メニューバーの Assets -> Create -> Material でMaterialを作成し、名前をWallとしておきます。
とりあえずはマテリアルの質感のMetarialとSmoothnessを0にしています。
色はなんとなく青っぽくしてみました。
壁のオブジェクトを作る
空のオブジェクトを作成して名前をWallにします。
Wallオブジェクトの子としてQuadオブジェクトを四方に配置します。
Quadオブジェクトにさきほど作った壁マテリアルを貼り付けます。
これで壁オブジェクトが完成しました。いちおうプレハブにしておきます。
壁オブジェクトを配置
空のオブジェクトを作成し名前をDungeonにします。
Dungeonオブジェクトの子として壁オブジェクトをMain Cameraオブジェクトの位置から左右に10個づつ配置します。
Main CameraのZ軸方向+1の位置にPoint Lightを配置します。
Lightコンポーネントの設定は画像のとおりです(このあたりはお好みで)。
これでダンジョンの完成です。
だいぶRPGっぽい雰囲気がでてきました。
ゆくゆくは前進するときに移動しているようなアニメーションを実装するつもりです。
おなじようにオブジェクトを作ってタイトルシーンにも配置しておくと、タイトルシーンももう少し雰囲気がでます。
ダンジョンの入り口っぽくしてみました。