プログラム研究 備忘録

java,C#,Unity等の備忘録です。経済理論も少し。

敵のランダム出現

コルーチンを使い、最大出現数を設定。

2体発生させるオブジェクトを作成したとしたら、

そのオブジェクトを発生させたい場所に配置する。

 

マップ全体を把握して、配置させる方法もあるのかもしれませんが、

調べてみた所、これが簡単そうです。

 

public class EnemyGeneratorCtrl : MonoBehaviour {
//生まれてくる敵プレハブ
public GameObject enemyPrefab;
//敵を格納
GameObject[] existEnemys;
//アクティブ最大数
public int maxEnemy = 2;

// Use this for initialization
void Start () {
//配列確保
existEnemys = new GameObject[maxEnemy];
//周期的に実行したい場合はコルーチン
StartCoroutine (Exec());

}

//敵を作成する
IEnumerator Exec(){
while (true) {
Generate ();
yield return new WaitForSeconds (3.0f);
}
}

void Generate(){
for(int enemyCount = 0; enemyCount < existEnemys.Length; ++ enemyCount){
if(existEnemys[enemyCount] == null){
//敵を作成する
existEnemys[enemyCount] = Instantiate(enemyPrefab,transform.position,transform.rotation) as GameObject;
return;
}
}
}