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


