(12)敵を作る①(砲弾の作成)

ここからは敵を作っていきます。

*敵のオブジェクトはHierarchyで自分の好きなように作成してください。

*名前は「EnemyA」に変更しておきましょう。

スクリーンショット 2016-07-08 11.42.17

1)敵の砲弾オブジェクトの作成&プレファブ化

①敵の砲弾オブジェクトの作成
②敵の砲弾のプレファブ化

(復習;下記を参考に作成してみてください)

「テキスト(2)砲弾を作って発射する」

オブジェクトの名前は「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&lt;Rigidbody&gt;();

		shellRigidbody.AddForce(transform.forward * shotSpeed);

		AudioSource.PlayClipAtPoint(shotSound, transform.position);

		Destroy(shell, 1.0f);
	}
}

コードを書けたらチェックをかけてください。


3)空のオブジェクトにコードを付ける!

(復習)テキスト(2)の中の「4)空のオブジェクトにコードを付ける!」を参考に進めてください。

・オブジェクトの名前は「EnemyShotShell」にしましょう。


4)親子関係の設定

次に、作成した「EnemyShotShell」オブジェクトを「敵(Enemy)の子供に設定」します。

(復習)これもテキスト(2)の5)「親子関係」を設定するを参考に進めましょう。


5)敵が攻撃を開始する「仕組み」を考える。

プレーヤーの場合は、「ボタンを押した時に砲弾を発射する」という仕組みでした。

一方で今回の敵の場合は、

①一定時間ごとに自動で発射する。

②サーチ機能でプレーヤーを感知(発見)した時に発射する。

という仕組みを作りたいと思います。

次のテキストに進みましょう!