(26)ゲームオーバーシーンの作成

1)ゲームオーバーシーンの作成

まずゲームオーバーシーンを作成します。

BallGame[16]ゲームオーバーを作ろうを参考にして作成してください。

スクリーンショット 2016-04-22 15.37.42

次に、ゲーム画面に戻るための「リトライ」ボタンを作成します。

BallGame[15]タイトルシーンを作ろうの中の(4)スタートボタンの作り方を参考にして作成してください。

スクリーンショット 2016-04-22 15.44.02

こんなイメージになります。

スクリーンショット 2016-04-22 15.51.24

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になった時にゲームオーバーになれば成功です。