②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」スクリプトに下記のコードを追加してください。(★★の部分)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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