ここからは敵を作っていきます。
*敵のオブジェクトはHierarchyで自分の好きなように作成してください。
*名前は「EnemyA」に変更しておきましょう。
1)敵の砲弾オブジェクトの作成&プレファブ化
①敵の砲弾オブジェクトの作成
②敵の砲弾のプレファブ化
(復習;下記を参考に作成してみてください)
オブジェクトの名前は「EnemyShell」にしてください。
2)敵の砲弾(EnemyShell)を発射するスクリプトを作成する。
・「C# Script」を1つ作成し、名前を「EnemyShotShell」に変更します。
・ダブルクリックして下記のコードを記載しましょう。
using UnityEngine;
using System.Collections;
public class EnemyShotShell : MonoBehaviour {
// ①★変数を定義する(データを入れるための箱を作る)
public GameObject shellPrefab;
public float shotSpeed;
public AudioClip shotSound;
// ②★敵が砲弾を発射するメソッド(命令ブロック)を作る
public void EnemyShot(){
GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.identity) as GameObject;
Rigidbody shellRigidbody = shell.GetComponent<Rigidbody>();
shellRigidbody.AddForce(transform.forward * shotSpeed);
AudioSource.PlayClipAtPoint(shotSound, transform.position);
Destroy(shell, 1.0f);
}
}
using UnityEngine; using System.Collections; public class EnemyShotShell : MonoBehaviour { // ①★変数を定義する(データを入れるための箱を作る) public GameObject shellPrefab; public float shotSpeed; public AudioClip shotSound; // ②★敵が砲弾を発射するメソッド(命令ブロック)を作る public void EnemyShot(){ GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.identity) as GameObject; Rigidbody shellRigidbody = shell.GetComponent<Rigidbody>(); shellRigidbody.AddForce(transform.forward * shotSpeed); AudioSource.PlayClipAtPoint(shotSound, transform.position); Destroy(shell, 1.0f); } }
コードを書けたらチェックをかけてください。
3)空のオブジェクトにコードを付ける!
(復習)テキスト(2)の中の「4)空のオブジェクトにコードを付ける!」を参考に進めてください。
・オブジェクトの名前は「EnemyShotShell」にしましょう。
4)親子関係の設定
次に、作成した「EnemyShotShell」オブジェクトを「敵(Enemy)の子供に設定」します。
(復習)これもテキスト(2)の5)「親子関係」を設定するを参考に進めましょう。
5)敵が攻撃を開始する「仕組み」を考える。
プレーヤーの場合は、「ボタンを押した時に砲弾を発射する」という仕組みでした。
一方で今回の敵の場合は、
①一定時間ごとに自動で発射する。
②サーチ機能でプレーヤーを感知(発見)した時に発射する。
という仕組みを作りたいと思います。
次のテキストに進みましょう!