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

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

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

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


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

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

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

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」)はコードのどの部分と対応しているか考えてみましょう。

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

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