2017-10-14 79 views
0

我想逐個實例化單元。怎麼一個一個實例化?

void Update() { 
    timer += Time.deltaTime; 
    Enemies[] enemies = stage.enemies; 
    if (timer >= 0) { 
     Vector3 enemyPos = new Vector3 (transform.position.x, Random.Range (-5.0f, 5.0f), transform.position.z); 
     for (int i = 0; i < enemies.Length; i++) { 
      for (int j = 0; j < enemies[i].count; j++) { 
       print (enemies.Length); 
       print (enemies[i].count); 
       GameObject spawn = Instantiate (enemyPrefeb, enemyPos, Quaternion.identity); 

       timer = delayTimer; 
      } 
     } 

    } 
} 

da 我用double for循環。目前的狀態像一個單位產生10個單位(在數據庫中)(重疊)

如何解決它?

我想延遲一個一個地產卵。

+0

檢查[this](http://answers.unity3d.com/questions/1304244/instantiating-grid-of-objects-starting-at-the-bott.html)對於不同的定位。並且爲了計時,您可以創建自己的計時器或使用[coroutine](https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html) – Thalthanas

回答

1

嘗試像這樣(這會生成每秒一個敵人):

float delayTimer = 1; 

void Update() { 
    timer += Time.deltaTime; 
    Enemies[] enemies = stage.enemies; 
    if (timer >= delayTimer) { 
     Vector3 enemyPos = new Vector3 (transform.position.x, Random.Range (-5.0f, 5.0f), transform.position.z); 
     GameObject spawn = Instantiate (enemyPrefeb, enemyPos, Quaternion.identity); 
     timer = 0; 
     for (int i = 0; i < enemies.Length; i++) { 
      for (int j = 0; j < enemies[i].count; j++) { 
       print (enemies.Length); 
       print (enemies[i].count); 
      } 
     } 
    } 
} 

你錯了兩條線,你必須檢查是否計時器是高達delayTimer然後產卵ENMY和復位定時器0