転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

【Unity】Prefabからゲームオブジェクトを自動生成する方法

1.GameObjectを作成し、以下スクリプトをアタッチする。

public class Emitter : MonoBehaviour {

// Enemyプレハブを格納する
public GameObject enemyOrigin;

public void createEnemy()
{
    // Enemyを作成する
    GameObject enemy = (GameObject)Instantiate(enemyOrigin, transform.position, Quaternion.identity);

}
}

2.上記のcreateEnemy()メソッドを、以下スクリプトから呼び出す。

public class GameManager : MonoBehaviour {

    // 
    const int RecoSeconds = 10;

    // Time
    public Text time;

    public GameObject emitter;

    private Emitter emitterScript;

    // 秒数
    private int seconds = 0;

	// Use this for initialization
	void Start () {

        emitterScript = emitter.GetComponent<Emitter>();

	}
	
	// Update is called once per frame
	void Update () {

        // 秒数の表示
        time.text = "TIME:" + seconds;

        // secondsが0秒のときにカウントスタート
        if(seconds == 0)
        {
            // コルーチンのスタート
            StartCoroutine(CountTime());

        } 

	}

    IEnumerator CountTime()
    {
    
        seconds = RecoSeconds;

        // Enemyの作成
        emitterScript.createEnemy();

        while (seconds > 0)
        {
            // 1秒待機
            yield return new WaitForSeconds(1.0f);
            seconds--;
        }

    }

}