ゲーム全体の進行を管理するマネージャークラスを作成する【Unity】

UnityのスクリプトはGameObjectにアタッチすることで初めて有効化されます。それでは、ゲーム全体を管理するためのスクリプトはどこにどのようにして作成すればよいのでしょうか?

開発環境

  • Unity 2019.4.1f1

ゲーム管理用のオブジェクトを用いる

自分で一からプログラムを組む場合は全体を管理するクラスを好きなように書けばよいのですが、Unityを用いて開発するのならUnityによるゲーム進行のシステムに組み込むようにゲーム管理用の処理も書かなくてはいけません。Unityにおけるゲーム進行で処理されるのはアクティブ化されたGameObjectのみなので、ゲーム全体を管理するスクリプトもGameObjectとして用意する必要があります。

ゲーム管理用のオブジェクトの作成

まずは、ゲーム全体を管理するための空(カラ)のGameObjectを作成し、これをゲーム全体を管理するマネージャーとして用いましょう。

「GameObject」→「Create Empty」で空のGameObjectを作成します。ここでは、GameManagerと名前を変更しておきます。

続いて、新規のスクリプトを作成します。スクリプトの名前は作成するときに決めてしまいましょう。

「Assets」→「Create」→「C# Script」から新規のスクリプトを作成します。ここでは、Managerという名前にしておきます。

作成されたスクリプトはMonoBehaviourを継承したクラスで、StartメソッドとUpdateメソッドがあらかじめ用意されています。スクリプトが有効化されたタイミングでまずStartメソッドが呼び出され、それ以降は各フレームごとにUpdateメソッドが呼び出されるので、ここにそれぞれの処理を記載していきます。なお、スクリプトのファイル名を変更する場合は、スクリプトのクラス名も必ず変更しましょう。

作成されたスクリプトにはStartメソッドとUpdateメソッドがあらかじめ用意されています。

最後にこのスクリプトを、先ほど作成したGameObjectにアタッチすることで実行できるようになります。

これで、ゲーム全体の進行を管理するマネージャークラスができました。今後はこのManagerに処理を記述していきましょう。

マネージャークラスへのスクリプトの記述

ここで作成したマネージャークラスの動作も当然Unity全体のイベント管理システムに組み込まれています。Unityのイベント管理はメッセージシステムによって行われており、それに沿ってマネージャークラスにも処理を記述していきます。具体的には、マネージャークラスに次のメソッドを作成して、そこに処理を書いていきましょう。

Startメソッド

そのマネージャークラスがアクティブになったときに最初に呼び出されるメソッドです。ゲームを初期化する処理などを書きましょう。

なお、Startメソッドはスクリプトを新規作成した段階で最初から用意されています。

Updateメソッド

Unityの各フレームごとに呼び出されるメソッドです。ユーザーからの入力を受け付けるような処理などを書きましょう。

なお、Updateメソッドはスクリプトを新規作成した段階で最初から用意されています。

FixedUpdateメソッド

一定時間ごとに呼び出されるメソッドです。Updateメソッドは端末の描画速度によって呼び出される間隔が一定ではないのに対して、FixedUpdateメソッドは一定間隔で呼び出されるので、物理演算などの処理を書くのに適しています。

Updateメソッドとの使い分けについては以下の記事をご覧ください。

LateUpdateメソッド

Updateメソッドが呼ばれた後に実行されるメソッドです。(マネージャークラスではあまり必要ないかもしれません)

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)