6、プレーヤーのHPをUIで表示する

(HPスライダーバーを作成する)

【復習】HPスライダーバーを作成しましょう。

*スライダーの名前は「PlayerHPSlider」にしてください。


(スクリプトを作成する)

「PlayerHealth」スクリプトを改良します。

下記の「★部分」のコードを追加してください。

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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
// ★追加
using UnityEngine.UI;
 
public class PlayerHealth : MonoBehaviour {
 
    private int playerHP = 3;
    public GameObject effectPrefab;
    public AudioClip explosion;
 
    // ★追加
    private Slider playerHPSlider;
 
    // ★追加
    void Start(){
        playerHPSlider = GameObject.Find ("PlayerHPSlider").GetComponent<Slider> ();
        playerHPSlider.maxValue = playerHP;
        playerHPSlider.value = playerHP;
    }
         
    void OnTriggerEnter(Collider other){
        if (other.gameObject.CompareTag ("EnemyShell")) {
            playerHP -= 1;
            Destroy (other.gameObject);
 
            // ★追加
            playerHPSlider.value = playerHP;
 
 
            if (playerHP == 0) {
                GameObject effect = Instantiate (effectPrefab, transform.position, Quaternion.identity) as GameObject;
                Destroy (effect, 0.5f);
                AudioSource.PlayClipAtPoint (explosion, transform.position);
 
                // プレーヤーを非アクティブ状態にする
                this.gameObject.SetActive(false);
            }
        }
    }
}

下記の2箇所(「Max Value」と「Value」)はコードのどの部分と対応しているか考えてみましょう。

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

・再生ボタンを押して敵のミサイルに当たってみましょう。ミサイルが当たるたびごとにスライダーの色が変化すれば成功です。