②HPの増減バーを作成する

1)UIを設定する

・「Canvas」の上で右クリック→「UI」→「Slider」を選択してクリック

スクリーンショット 2016-07-02 23.28.01

・Sliderの名前を「TankHPSlider」に変更する。

スクリーンショット 2016-07-02 23.28.24

・「Handle Slide Area」は使用しないので、「削除」する。(右クリックでdelete)

スクリーンショット 2016-07-02 23.28.42

・「TankHPSlider」を選択→「Interactable」のチェックを外す。

スクリーンショット 2016-07-02 23.29.03

・「Fill Area」を選択→「Rect Transform」の数字を「全て0」にする。

スクリーンショット 2016-07-02 23.29.43

・「Fill」を選択→こちらも「Rect Transform」の数字を「全て0」にする。

スクリーンショット 2016-07-02 23.29.55

・「Background」を選択→「Color」の色を変更する(色は自由)

スクリーンショット 2016-07-02 23.30.23

・「Fill」を選択→こちらも「Color」の色を変更する(色は自由)

スクリーンショット 2016-07-02 23.30.41

・「TankHPSlider」を選択→「Value」を左右にスライド→連動して色が変われば成功です。

スクリーンショット 2016-07-03 0.11.21

*ここまでできたら、画面上で「TankHPSlider」の位置を「Rect Transform」で調整しましょう。


・「TankHPSlider」をクリック→「Max Value」に自分のプレーヤー(Tank)の最大HPの数字を入れる。

スクリーンショット 2016-07-02 23.33.02

 


2)スクリプトの作成

「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;

	// ★★(追加)
	private Slider slider;

	void Start(){
		tankHPLabel.text = "" + tankHP;

		// ★★(追加)
		// 「TankHPSlider」という名前のオブジェクトを見つける。
		// そのオブジェクトに付いてる「Slider」コンポーネントの情報を「slider」という箱の中に入れる。
		slider = GameObject.Find("TankHPSlider").GetComponent<Slider>();
	}

	void OnTriggerEnter(Collider other){
		if(other.gameObject.CompareTag("EnemyShell")){

			tankHP -= 1;
			tankHPLabel.text = "" + tankHP;

			// ★★(追加)
			slider.value = 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);

				gameObject.SetActive(false);

				//Destroy(gameObject,3.0f);

				Invoke("SceneChange", 3.0f);
			}
		}
	}

	void SceneChange(){
		SceneManager.LoadScene("Main");

		//Application.LoadLevel("Main");
	}
		
	public void AddHP(int amount){

		tankHP += amount;

		if(tankHP >= 20)
			tankHP = 20;

		tankHPLabel.text = "" + tankHP;

		// ★★(追加)
		slider.value = tankHP;
	}
}

・スクリプトの修正ができたらチェック。

・再生ボタンを押して確認してみましょう。

・敵の攻撃を受けたり、回復アイテムを獲るたびにバーの色が変化すれば成功です。

スクリーンショット 2016-07-02 23.38.59