2015-11-24 2 views
1

У меня возникли проблемы с созданием случайного астероида из массива в цикле for.spawn gameobject из массива

Массив работает сейчас, однако (я предполагаю, что это в цикле for где-то), он не будет чередовать между различными игровыми объектами. какой бы объект ни появлялся в первую очередь, каждый раз появляется, но каждый раз, когда вы загружаете игру, каждый раз каждый раз порождает другую.

Как мне получить его, чтобы выбрать новый случайный объект из массива после каждого экземпляра экземпляра?

using UnityEngine; 
using System.Collections; 

public class GameController : MonoBehaviour { 

    public GameObject[] asteroids; 
    public Vector3 spawnValues; 
    public int asteroidCount; 
    public float spawnWait; 
    public float startWait; 
    public float waveWait; 

    void Start() { 
     StartCoroutine (spawnWaves()); 
    } 

    IEnumerator spawnWaves() { 

     GameObject asteroid = asteroids[Random.Range(0, asteroids.Length)]; 

     while (asteroidCount > 0) { 
      for (int i = 0; i < asteroidCount; i++) { 
       Vector3 spawnPosition = new Vector3 (spawnValues.x, Random.Range (-spawnValues.y, spawnValues.y), spawnValues.z); 
       Quaternion spawnRotation = Quaternion.identity; 
       Instantiate (asteroid, spawnPosition, spawnRotation); 
       yield return new WaitForSeconds (spawnWait); 
      } 
     } 
    } 
} 
+2

Off тему, но вы имеете в виду помечать с C# не C? Я не знаю, можете ли вы использовать C с единством – Taelsin

+0

мой плохой, нет, он должен быть C#! – MarkHughes88

ответ

2

Вы выбираете объект на нерест вне цикла

GameObject asteroid = asteroids[Random.Range(0, asteroids.Length)]; 

потребности быть здесь

while (asteroidCount > 0) { 
     for (int i = 0; i < asteroidCount; i++) { 
      GameObject asteroid = asteroids[Random.Range(0, asteroids.Length)]; 
+0

отлично это работало спасибо :) – MarkHughes88

 Смежные вопросы

  • Нет связанных вопросов^_^