今のままでは一撃で敵ボスを倒せてしまいます。
そのため、次は敵ボスに体力ポイントを付けてみましょう。
ロジック(考え方)はこうです。
・最初に敵ボスの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となります。好きな数字を「整数」で記入しましょう。
・ここまでできたら「再生ボタン」を押してみましょう。
・砲弾が1回当たるごとに敵ボスのHPが減って、0になった時に敵ボスが画面から消えたら成功です。
(ポイント)
「Debug.Log」のコードを記入すると、「左下のコンソール画面」に情報が表示されます。
今回は敵ボスのHPをコンソールに表示するように設定しています。
砲弾が当たるたびに数字が小さくなっているか確認しましょう。
