3、敵を作成する

どんな敵にするかは自由です。

ここでは基本的な作り方を説明します。

(敵を作成する)

「Create Empty」を1つ作成→名前を「EnemyA」に変更(名前は自由です。)

・最初のPosition「0,0,0,」にしておきましょう。

・次に、敵の「Body(本体)」を作成します(これも形等は自由です。)

・「Material」を使って「色」も自由につけましょう。

・BodyはEnemyの中に入れて「親子関係」を作りましょう(ポイント)


(敵にHPをつける)

・新規にC#スクリプトを1つ作成→名前を「EnemyHealth」に変更

・下記のコードを記載

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyHealth : MonoBehaviour {

	public GameObject effectPrefab;
	public AudioClip destroySound;
	public int enemyHP;


	void OnTriggerEnter(Collider other){
		if (other.gameObject.CompareTag ("Shell")) {

			// HPを1ずつ減らす
			enemyHP -= 1;

			GameObject effect = Instantiate (effectPrefab, transform.position, Quaternion.identity) as GameObject;
			Destroy (effect, 2.0f);
			Destroy (other.gameObject);

			if (enemyHP == 0) {

				// 親を非アクティブの状態にする。
				transform.root.gameObject.SetActive (false);

				AudioSource.PlayClipAtPoint (destroySound, transform.position);
			}
		}
	}
}

・コードのチェックができたらスクリプトは「Body」に付けること。

・「Effect Prefab(エフェクト)」「Sound」「HP数」は自由に設定しましょう。

ここまでできたら再生ボタンを押してミサイルを敵に当ててみましょう。

HPが0になった時に敵が画面から消えれば成功です。

(敵が消えない場合にはここをチェック!)

*Shell Prefabの「Tag」

*Shell PrefabのColliderの「Is Trigger」


(敵のHPを画面に表示する)

・ここではHPを表示する「Slider Bar」を作成します。

・「Canvas」を1つ作成しましょう。

【復習】HPスライダーバーは下記を参考に作成しましょう。

・「HPの増減バーを作成する

*Sliderの「名前」は「EnemyHPSlider」に変更すること。

スライダーバーができたら、次に「EnemyHealth」スクリプトに下記のコードを追加してください。(★部分を追加)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// ★追加
using UnityEngine.UI;

public class EnemyHealth : MonoBehaviour {

	public GameObject effectPrefab;
	public AudioClip destroySound;
	public int enemyHP;

	// ★追加
	private Slider enemyHPSlider;


	// ★追加
	void Start(){
		enemyHPSlider = GameObject.Find ("EnemyHPSlider").GetComponent<Slider> ();
	}


	void OnTriggerEnter(Collider other){
		if (other.gameObject.CompareTag ("Shell")) {

			// HPを1ずつ減らす
			enemyHP -= 1;

			// ★追加
			enemyHPSlider.value = enemyHP;

			GameObject effect = Instantiate (effectPrefab, transform.position, Quaternion.identity) as GameObject;
			Destroy (effect, 2.0f);
			Destroy (other.gameObject);

			if (enemyHP == 0) {

				// 親を非アクティブの状態にする。
				transform.root.gameObject.SetActive (false);

				AudioSource.PlayClipAtPoint (destroySound, transform.position);
			}
		}
	}
}

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

再生ボタンを押してミサイルを当ててみましょう。

ミサイルが当たるたびにバーの色が変われば成功です。