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