Unity でRPGのメニュー画面を作ってみた

RPGつながりということで、本日は Unity でメニュー画面作ってみました。

メニュー画面とは、フィールドや町など戦闘中以外に開くことができる画面で
アイテムの使用や装備の変更などを行うことができます。

多くのゲームでは画面いっぱいに表示されます。

今回作ったものも、そういった形にしました。

Unity RPG メニュー画面

メニュー画面はフィールド画面の前面に表示します。

今回はフィールド画面を背景に残す仕様とするため
メニュー画面には Canvas を使用し
Panel ゲームオブジェクトの Image コンポーネントに半透明の設定をしました。

後は項目を配置してメニューを作りこんでいけば良いです。

さて、メニュー画面はこれでは終われません。もう一つ大事なポイントがあります。

それは「timeScale」の設定です。

メニュー画面を開いている間は
フィールド画面の時間が流れないようにする必要があります。

まず、時間の止め方ですが「Time.timeScale」(float型)の値を 0.0f に変更すればよいです。

これで時間が止まります。

この時、FixedUpdate メソッドは呼ばれないようになっています。

一方、Update メソッドは毎フレーム呼び出され続けています。

ですので、Update メソッドには、時間が止まった状態で動いていい処理と動いてはいけない処理を条件分岐させる必要があります。

時が止まっているかどうかは Time.timeScale の値を確認すればよいです。

最後にメニュー画面を閉じたタイミングで Time.timeScale の値を 1.0f に戻してあげると、元通り時が流れ出します。

関連記事:

 |