1)ゲームオーバーシーンの作成
まずゲームオーバーシーンを作成します。
*BallGame[16]ゲームオーバーを作ろうを参考にして作成してください。
次に、ゲーム画面に戻るための「リトライ」ボタンを作成します。
*BallGame[15]タイトルシーンを作ろうの中の(4)スタートボタンの作り方を参考にして作成してください。
こんなイメージになります。
2)タイムオーバーでゲームオーバーにする
*「GameController」スクリプトの中に下記コードを追加してください。(★の部分)
using UnityEngine; using System.Collections; using UnityEngine.UI; // ★<追加> using UnityEngine.SceneManagement; public class GameController : MonoBehaviour { public float timeCount; public Text timeLabel; void Start(){ } void Update () { timeCount -= Time.deltaTime; timeLabel.text = "TIME:" + timeCount.ToString("0"); // ★タイムが0未満になるとゲームオーバーにする if(timeCount < 0){ SceneManager.LoadScene("GameOver"); } } }
・コードが書けたらチェック。
・再生ボタンを押してタイムが0になった時にゲームオーバーになれば成功です。
3)TankのHPが0になったらゲームオーバーにする
*「TankHealth」スクリプトの中に下記コードを追加してください(★★ここを修正の部分)
using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.SceneManagement; public class TankHealth : MonoBehaviour { public GameObject effectPrefab1; public GameObject effectPrefab2; public int tankHP; public Text tankHPLabel; void Start(){ tankHPLabel.text = "HP: " + tankHP; } void OnCollisionEnter(Collision other){ if(other.gameObject.CompareTag("EnemyShell")){ tankHP -= 1; tankHPLabel.text = "HP: " + tankHP; if(tankHP > 0){ GameObject effect1 = Instantiate(effectPrefab1, transform.position, Quaternion.identity) as GameObject; Destroy(effect1, 1.0f); Destroy(other.gameObject); } else { GameObject effect2 = Instantiate(effectPrefab2, transform.position, Quaternion.identity) as GameObject; Destroy(effect2, 1.0f); Destroy(other.gameObject); // HPが0になったらTank(プレーヤー)を画面から消す gameObject.SetActive(false); // 3秒後に「SceneChange」のスクリプトを呼び出す Invoke("SceneChange", 3.0f); } } } // ★★(ここを修正)「"Main"」を「"GameOver"」に変更する void SceneChange(){ SceneManager.LoadScene("GameOver"); } public void AddHP(int amount){ tankHP += amount; tankHPLabel.text = "HP: " + tankHP; } }
・コードが書けたらチェック。
・再生ボタンを押してHPが0になった時にゲームオーバーになれば成功です。