Unity で テトリス風ゲームを作ってみる#11
前回の続き
前回はゲームオーバー画面とリスタートボタンまで整理ができたので、残るタイトル画面とゲームスタートボタンを考える。ここまでできれば、タイトル画面→ゲームスタート→ゲームオーバー→ゲームリスタートの一連の流れが整理できたことになる。
タイトル画面
タイトル画面は、ゲーム起動時に表示される画面で、画面上にはスタートボタンがありスタートボタンを押すと、タイトル画面が消えてゲーム画面に切り替わり、ゲームがスタートすることになる。
よって、
-
- ゲーム起動時にタイトル画面を表示する
- スタートボタンが押されたことを検知する
- タイトル画面を消去して、ゲームを開始する
が実現できればよい。
タイトル画面の構造はゲームオーバー画面と同様でよいので、Panel UI オブジェクトを背景にタイトル用のText UI オブジェクトとスタートボタン用のButton UI オブジェクトを配置すればよさそう(Panel UI オブジェクトを親とする点も変わらず)。
"ゲーム起動時にタイトル画面を表示する"は、単にタイトル画面のPanel UI オブジェクトをデフォルトで有効にしておけばよいだけなので問題なし(というかGameObject を生成した段階で通常はデフォルトで有効な状態)。
各UI画面の構成を整理しておくと、下記のようにタイトル画面(GameTitle)、ゲーム画面(GamePlay)、ゲームオーバー画面(GameOver)の3つのUI画面構成になる。
GameTitle Panel GameObjectだけが、デフォルトで有効(グレーアウトされていない状態)で、GamePlay とGameOver GameObject の方はデフォルトを無効(グレーアウトされている状態)にしておく。
各画面の切り替えは、各画面の親であるPanel UI GameObject をSetActive でture/false にすることで制御を行う。
例えば、タイトル画面上のスタートボタンが押されたらゲームを開始するには、スタートボタンのコールバック関数にて、GameTitle GameObject をSetActive(false) し、GamePlay GameObject をSetActive(true) にするようなイメージ。
スタートボタンの検知は、ゲームオーバー時のリスタートボタンと同様。Button UI コンポーネントの"On Click()" にコールバック関数を設定しておけばOK。
ここまでの内容をプロト実装した結果が下記。これで一通り作り方はクリアになった。
次の記事