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; } }
・スクリプトの修正ができたらチェック。
・再生ボタンを押して確認してみましょう。
・敵の攻撃を受けたり、回復アイテムを獲るたびにバーの色が変化すれば成功です。