今のままでは一撃で敵ボスを倒せてしまいます。
そのため、次は敵ボスに体力ポイントを付けてみましょう。
ロジック(考え方)はこうです。
・最初に敵ボスの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をコンソールに表示するように設定しています。
砲弾が当たるたびに数字が小さくなっているか確認しましょう。
