前回の作業でゲームオーバー処理を作ることができました。しかし現状ではゲームオーバー画面が出た後に何も起きないので、ゲームに再挑戦したい場合にとても不便です。
そこでここではゲームにリトライ機能をつけてすぐに再挑戦できるようにしていきます。
Visual Scriptingでリトライ機能を作る方法
では早速ですがVisual Scriptingでリトライ機能を作っていきましょう。
ゲームオーバー用トリガーに変数を追加する
まず、前回作ったゲームオーバー用トリガーに必要な変数を追加します。次の2つの変数を新しく作ってください。
- Retry Transform(Transform型)
- Is Game Over(Boolean型)
そうしたら、適当な位置に新しい空のゲームオブジェクトを作り「Retry Transform」と名前を変更して先ほど作った変数の欄に登録しましょう。このゲームオブジェクトの座標が、リトライしたときのプレイヤーの再出現位置になります。
ゲームオーバー用トリガーのグラフにリトライ処理を追加する
次に前回作ったゲームオーバー用トリガーのグラフに、リトライに必要な処理を追加します。はじめに前回作った処理の末尾(つまりSet Activeユニット)の次に下図のSet Variableユニットを追加してください。
つまりゲームオーバーになったら「Is Game Over」をTrueにするというわけです。これができたら、次は(結構長い処理になりますが)Updateイベントに下図の処理を作りましょう。
いや~面倒なグラフになってしまいました。一応簡単に解説しておくと、左から
- ゲームオーバー中にジャンプ入力があったら…
- プレイヤーの座標を再出現位置にして、プレイヤーのゲームオブジェクトをアクティブ化
- ゲームオーバー画面のキャンバスを無効化
- Spawnerのゲームオブジェクトを有効化
- 最後にIs Game OverをFalseにして終了
といった流れになっています。Visual Scriptingだと長ったらしいグラフになってしまうので「何これ」と思うかもしれませんが、処理内容さえ理解できれば全然難しくないと思います。
テストプレイして動作を確認しよう
では最後にテストプレイして動作を確認しましょう。ゲームオーバー後にジャンプボタンを押したら再びゲームが始まるようになれば成功です。