[25]敵ボスに体力ポイント(ヒットポイント)を付ける

今のままでは一撃で敵ボスを倒せてしまいます。

そのため、次は敵ボスに体力ポイントを付けてみましょう。

ロジック(考え方)はこうです。

・最初に敵ボスのHP(=数字)を決める。

・砲弾と敵ボスが当たるたびに、HPの数字を1つずつ減らす。

・HPの数字が0になったら、敵ボスを画面から消す。

では、このロジックを実現できるようにスクリプトを作成しましょう。

1)「DestroyBoss」スクリプトを修正する。

今回は、「DestroyBoss」スクリプトのコードを書き換えていきます。

「DestroyBoss」スクリプトをダブルクリックしましょう。

・コードを下記のように書き換えてください。

*単に書き写すのではなく、ロジックをゆっくり頭で整理しながら書いていきましょう。

using UnityEngine;
using System.Collections;

public class DestroyBoss : MonoBehaviour {

	// ①bombEffectの変数名を下記に変更しましょう。
	public GameObject bombEffect1;
	public GameObject bombEffect2;

	// ②敵ボスのHPを変数で定義する。
	public int bossHealth;


	void OnTriggerEnter(Collider other){

		// この中のコードを下記のように書き直しましょう。
		if(other.CompareTag("Shell")){

			// ③砲弾に当たるごとに、敵ボスのHPを1ずつ減らす。
			bossHealth = bossHealth - 1;
			Debug.Log(bossHealth);

			Destroy(other.gameObject);

			// ④「もしも敵ボスのHPが0よりも大きい場合には」(条件)
			if(bossHealth > 0){
				
				// effect1の視覚効果を実行する。
				GameObject effect1 = Instantiate(bombEffect1, transform.position, Quaternion.identity) as GameObject;

				// 7秒後にeffect1を画面から消す。
				Destroy(effect1, 7.0f);

			} else { // ⑤「もしも敵ボスのHPが0になった場合いは」(条件)

				// effect2の視覚効果を実行する。
				GameObject effect2 = Instantiate(bombEffect2, transform.position, Quaternion.identity) as GameObject;

				// 7秒後にeffect1を画面から消す。
				Destroy(effect2, 7.0f);

				// 敵ボスを画面から消す。
				Destroy(this.gameObject);
			}
		}
	}
}

・コードが書けたらいつものようにチェックしましょう。

・「Hierarchy」で敵ボスをクリック

「BombEffect1」と「BombEffect2」に好きな視覚効果をセットしましょう。

「Boss Health」が敵ボスのHPとなります。好きな数字を「整数」で記入しましょう。

スクリーンショット 2016-02-05 15.14.20

・ここまでできたら「再生ボタン」を押してみましょう。

・砲弾が1回当たるごとに敵ボスのHPが減って、0になった時に敵ボスが画面から消えたら成功です。


(ポイント)

「Debug.Log」のコードを記入すると、「左下のコンソール画面」に情報が表示されます。

今回は敵ボスのHPをコンソールに表示するように設定しています。

砲弾が当たるたびに数字が小さくなっているか確認しましょう。