(19)プレーヤーにHPをつけて画面に表示する

今回は、プレーヤーにHPをつけて画面に表示する方法です。

1)HPを画面に表示する準備

まずはHPを画面に表示する準備です。

「Canvas」を右クリック→「UI」を選択→「Text」を選択してクリック。

・名前は「TankHP」に変更しましょう。

スクリーンショット 2016-03-17 13.14.57

「表示する位置」はどこでも構いません。

「テキストの大きさ(Font Size)」「テキストの色(Color)」も自分の好みに変更してください。

スクリーンショット 2016-03-17 13.15.10

さあこれで、HPを表示する画面の準備ができました。

2)スクリプの作成

「C#スクリプト」を1つ作成してください。

・名前は「TankHealth」に変更しましょう。

・下記を参考にコードを記載してください。

*今回はTnakのHPが0になったら、ゲームが再びスタートするように設定してあります。

using UnityEngine;
using System.Collections;

// ★下記2つを追加すること
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);
			}
		}
	}

	// 「Mian」シーンに再び戻るメソッド(命令ブロック)
	void SceneChange(){
		SceneManager.LoadScene("Main");
	}
}

・コードが書けたらチェック。

「Enemy Shell」プレファブ「EnemyShell」の「Tag」を付けましょう。

スクリーンショット 2016-05-23 23.39.12

・チェックが完了したら、「TankHealth」スクリプトを「Player(Tank)」オブジェクトに付けましょう。

「Tank HP Label」の空欄に「Tank HP」をドラッグ&ドロップ。

スクリーンショット 2016-07-08 15.19.21

*「Effect Prefab1」と「Effect Prefab2」(爆発のエフェクト)の項目は自分で好きなように設定してみましょう。

3)Tank(Player)にコライダーコンポーネントを設置

・当たり判定をとるためには「コライダー」が必要ですので「親オブジェクト」に設置しましょう。

Tank(プレーヤー)をすっぽり囲むように「大きさ」と「位置」を調整してください。

*今回は「OnCollisionEnter」で書いているので「Is Trigger」のチェックは不要です。

スクリーンショット 2016-07-08 15.26.44

・設定が完了したら「再生ボタン」をクリック。

・画面にプレーヤーのHPが表示されて、敵の攻撃を受けるたびに数が減少する。

・同時に爆発のエフェクトが出る。そして、HPが0になったら画面からプレーヤーが消える。

・そして3秒後にゲームがリスタートする。

スクリーンショット 2016-07-08 15.35.02

ここまでできたら成功です。


(リスタートした時、画面が暗くなる場合の解消方法)

・「Window」をクリック→「Lighting」をクリック

スクリーンショット 2016-07-08 15.30.06

・「Auto」のチェックを外す→「Build」を押す。

スクリーンショット 2016-07-08 15.30.15