タイムアップすると、リトライのボタンが表示される仕組みを作ってみましょう。
今回の例では、コンソールにタイマーを表示させます。
3秒からはじまり、0秒になればボタンが表示。
ボタンを押せばリトライされ、再びゲームがはじまります。
関連記事:
リトライボタンを設置する
リトライボタンが効かない場合の解決法
Escapeキーで画面を閉じる
ボタン表示・非表示のスクリプトをつくる
TextMeshProを使用したタイムアップのしくみ
制限時間になればRetryボタン表示
空のオブジェクトと、Buttonを作成します。
Buttonオブジェクトを適度なところに配置します。
初期表示させないので、Buttonのチェックを外しておきます。
GameManager.csを作成し、GameObjectに追加します。
GameManager.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { public GameObject retryButton; private float time; void Start() { time = 3.0f; retryButton.SetActive(false); } void Update() { if (0 <= time) { time -= Time.deltaTime; } if (time <= 0) { retryButton.SetActive(true); } Debug.Log(time); } public void Retry() { SceneManager.LoadScene(SceneManager.GetActiveScene().name); } } |
シーンを再ロードするために、4行目 using UnityEngine.SceneManagement; を忘れず書いておきましょう。
RetryButtonのフィールドに、Buttonのオブジェクトを入れます。
Buttonの設定を、以下の手順で行いましょう。
ゲームプレイして、動きを確認します。
タイマーが0になると、ボタンが表示。
クリックするとシーンが再ロードされて、再びゲームがスタートします。
関連記事:
リトライボタンを設置する
リトライボタンが効かない場合の解決法
Escapeキーで画面を閉じる
ボタン表示・非表示のスクリプトをつくる
TextMeshProを使用したタイムアップのしくみ