#15 タイトル画面とゲームオーバー画面をつくる

2Dシューティング
このブログは、趣味でプログラミングを勉強中の筆者が、実験を繰り返しながら、WordPressの使い方の練習も兼ねて、備忘録のように記事を残していくものです。Unityのバージョンは6000.0.32f1です。

とりあえずゲームとしての形にはなってきましたので、タイトルとゲームオーバー画面を作ります。超簡単に。

今回のゴール

タイトル画面とゲームオーバー画面を作る

シーンの追加

メニューからFile→New Scene(コントロールキー+Nキーでも可)を選んで、新しいシーンを作ります。

同じようにBasic 2Dを選んでCreateをクリックします。

作成したシーンをScenesフォルダにTitleとして保存します。

ざっくりとUIテキストを貼り付けます。そして、今回はUIボタンも貼りました。簡単すぎ!

プロジェクトにシーンを追加する

プログラムでシーンを切り替えるのに、少し準備が必要です。ファイル→ビルドプロファイルを選択します。

開いているシーンを追加を選んで、今のシーンをプロジェクトに追加します。タイトル画面を追加したら、ゲームオーバーのシーンを作成して追加します。

ビルドプロファイルに追加するのも忘れずに。

ドラッグで順番を調整できますので、シーンリストの順番も整えておきましょう。

UIボタンの設定をする

UIボタンをクリックするとScene1に遷移したいので、制御用のスクリプトを作ります。

Title.cs

ボタンのテキストを制御するのに、テキストメッシュプロの設定を読み込む必要があるので、ファイルのはじめにusing TMPro;を追加します。また、インスペクタでボタンの設定をするために、

を使います。[SerializeField]は何かというと、publicにしなくてもインスペクタで設定ができるようにする指示文です。他のスクリプトからいじる必要がなければ、publicよりも推奨されています。TextMeshProUGUI _labelで、実際のボタンを紐付ける入れ物を作り、_labelという名前をつけます。以降、_labelに操作をすることで、ボタンのテキストが変更できます。

まだ、ボタンのテキストとこのスクリプトを紐付ける操作をしていないので、今の段階では変更できません。

スクリプトとボタンを紐付ける

_labelとボタンのテキストを紐付けるために次の操作をします。

  • ButtonオブジェクトをStartButtonに名前を変更します。
  • StartButtonオブジェクトにTitleスクリプトをドラッグして取り付けます。

次に、StartButtonの中のTextTitleスクリプトのラベルの欄にドラッグして設定します。これで、Titleスクリプトの中の_labelとボタンに表示されたテキストが紐付きました。Start関数の中の _label.text = “PRESS TO GAME START”で、ボタンのテキストを変更することが出来ます。

ボタンを押して処理をする仕組みを作る

この段階でもゲーム画面ではボタンを押すことは出来ます。しかし、押してもボタンの色が変わるだけで何も起こりません。そこで、ボタンを押すとTitle.csのOnPressed()関数が実行されるように設定します。

StartButtonオブジェクトを選択した状態で、インスペクターのTitleスクリプトをクリック時()なし(オブジェ)の欄にドラッグします。(またはヒエラルキーからStartButtonオブジェクトをドラッグしてもよい)

上の図では、Title.OnPressedになっている赤囲みの部分ですが、これは紐付けた後です。実際は、No Functionになっていると思います。

No Functionの欄をクリックして、TitleOnPressed()の順にクリックする。これで、ボタンをクリックするとScene1に切り替わるようになります。

ボタンを押すと切り替わった!

今回はここまでです。お疲れ様でした。

コメント

タイトルとURLをコピーしました