(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/)
前回の日記で、ゲームの制限時間が0になったとき、再スタートさせるボタン(ButtonRestart)を表示させた。ただ、前回は表示させただけでボタンを押しても、まだ何も起こらない。今回は、ボタンを押すことでゲームをリスタートして何回も遊べるようにする処理を実装していく。今回、ゲームをもう一度遊ぶ手っ取り早い方法として、Sceneを初期化してしまうことにした(ハイスコア等を記録する際には修正が必要になるかもしれないが、とりあえずはこの方法で行く)。Application.LoadLevelを使えば実現できそう。
https://docs.unity3d.com/ja/current/ScriptReference/Application.LoadLevel.html
今回つくったスクリプトがこちら。
ボタンを押したときの処理は、void OnClick()内に書く。Application.LoadLevelの引数には、読み込みたいScene名を書けばよい(今回は”Stadium”)。あとは、この前追加したButtonRestartオブジェクトにスクリプトを付加して、下の画像の赤枠の中のようにOn Clickの設定を行う。
これでボタンを押すとリスタートできたのだが、なぜか画面が暗い。調べてみると、追加で以下のような設定が必要なようだ。
http://funct.hatenablog.com/entry/20150926/1443279282
こちらの設定を行えば、問題なくリスタートできた。次はハイスコアの実装でもしようかと思ったけど、まずは最低限の体裁を整えたい。ということでタイトル画面でも作りたいと思う。