1)UIを設定する
・「Canvas」の上で右クリック→「UI」→「Slider」を選択してクリック
・Sliderの名前を「TankHPSlider」に変更する。
・「Handle Slide Area」は使用しないので、「削除」する。(右クリックでdelete)
・「TankHPSlider」を選択→「Interactable」のチェックを外す。
・「Fill Area」を選択→「Rect Transform」の数字を「全て0」にする。
・「Fill」を選択→こちらも「Rect Transform」の数字を「全て0」にする。
・「Background」を選択→「Color」の色を変更する(色は自由)
・「Fill」を選択→こちらも「Color」の色を変更する(色は自由)
・「TankHPSlider」を選択→「Value」を左右にスライド→連動して色が変われば成功です。
*ここまでできたら、画面上で「TankHPSlider」の位置を「Rect Transform」で調整しましょう。
・「TankHPSlider」をクリック→「Max Value」に自分のプレーヤー(Tank)の最大HPの数字を入れる。
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;
}
}
・スクリプトの修正ができたらチェック。
・再生ボタンを押して確認してみましょう。
・敵の攻撃を受けたり、回復アイテムを獲るたびにバーの色が変化すれば成功です。










