さしみゲーにタイトル画面をつけてみた(Unityの話)

今のさしみゲーに何が足りないか。

それはタイトル画面なのではないかと思いました。タイトル画面のないゲームってないですよね。というわけでつけてみました。

タイトル画面のついたさしみゲー(注意:音が出ます)

今回のポイント

シーン間の移動

void StartGame() {
  Application.LoadLevel("Game");
}

Application.LoadLevelの引数にシーン名を与えることでシーン間を遷移することができます。

実行すると即座に切り替わってしまうので、トランジションなどの演出を加えたい場合は一工夫する必要があります。例えば白くフェードしたい場合は、画面全体に白いスプライトを描画して、このスプライトのアルファをいじってあげればいいですね。とはいえ結構めんどいので、ライブラリ的なコードを書いて使い回すのが吉かも。

Build_Settings

ビルド時にゲーム中で使っているシーンを全て含めておくのも忘れずに。一番上のシーンが一番最初に実行されるので、タイトル画面は一番上に設定する必要があります。

ボタンの処理

アフロ先生のコードを拝借しました。

特筆すべきはtargetObject.SendMessage(messageName);の部分でしょう。これによりゲームオブジェクトに設定したスクリプトで定義してある任意のメソッドを実行することができます。Rubyのsendみたいなイメージ。

Title_unity_-_sashimi_-_Web_Player

上の例は「はじめる」ボタンをタップすると、TitleControllerというゲームオブジェクトのStartGameメソッドを呼び出すというものです。わざわざハードコードせずに、画面上の設定で実装できるようなスクリプトを用意できると便利ですねー。

ちなみにSendMessageはC#の組み込みメソッドではなく、UnityのGameObjectクラスのメソッドです(参照)。

他に足りないもの・・・あっ

このゲーム、終わりがないですね・・・。しかし終わりがないのがコンセプトのゲームなので、次はギブアップとスコアの保存ができるようにしましょう。まだまだ続くのじゃ。

タイトル画面のついたさしみゲー(注意:音が出ます)