敵を動かす②(敵の発生装置)
敵の製造装置(コルーチンの活用)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyGene : MonoBehaviour
{
public GameObject enemyPrefab;
public float speed;
private void Start()
{
StartCoroutine(GeneEnemy());
}
// (ポイント)コルーチン
IEnumerator GeneEnemy()
{
// 何回繰り返すかは自由に設定
for(int j = 0; j < 10; j++)
{
for (int i = 0; i < 5; i++)
{
GameObject enemey = Instantiate(enemyPrefab, transform.position, Quaternion.Euler(90, 0, 0));
Rigidbody enemyRb = enemey.GetComponent<Rigidbody>();
enemyRb.AddForce(transform.forward * speed);
Destroy(enemey, 10f);
// 0.2秒ごとに動作を繰り返す(自由に変更可能)
yield return new WaitForSeconds(0.2f);
}
// 3秒ごとに動作を繰り返す(自由に変更可能)
yield return new WaitForSeconds(3f);
}
}
}
【2019版】Danmaku Ⅱ(基礎2/全38回)
他のコースを見る敵の製造装置(コルーチンの活用)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyGene : MonoBehaviour
{
public GameObject enemyPrefab;
public float speed;
private void Start()
{
StartCoroutine(GeneEnemy());
}
// (ポイント)コルーチン
IEnumerator GeneEnemy()
{
// 何回繰り返すかは自由に設定
for(int j = 0; j < 10; j++)
{
for (int i = 0; i < 5; i++)
{
GameObject enemey = Instantiate(enemyPrefab, transform.position, Quaternion.Euler(90, 0, 0));
Rigidbody enemyRb = enemey.GetComponent<Rigidbody>();
enemyRb.AddForce(transform.forward * speed);
Destroy(enemey, 10f);
// 0.2秒ごとに動作を繰り返す(自由に変更可能)
yield return new WaitForSeconds(0.2f);
}
// 3秒ごとに動作を繰り返す(自由に変更可能)
yield return new WaitForSeconds(3f);
}
}
}
敵を動かす②(敵の発生装置)