public IEnumerator SpawnWave() { monoBehaviour = GameObject.Find("MonoBehaviourObject").GetComponent <MonoBehaviourObject>(); gameControllerLevel2 = GameObject.FindGameObjectWithTag("GameControllerLevel2").GetComponent <GameControllerLevel2>(); //script da controladora do jogo gameControllerLevel2.pauseWaves = true; //pausa a aparição dos outros inimigos int objectCount = levelObjects.Length; for (int count = 0; count < objectCount; count++) { monoBehaviour.StartCoroutine(levelObjects[count].Spawn()); while (!levelObjects[count].terminou) { yield return(null); //continua execução do loop no próximo frame } } gameControllerLevel2.pauseWaves = false; //retorna a aparição dos outros inimigos yield return(null); }
private MonoBehaviourObject GetCharacteristicAsset(Characteristic characteristic) { string name = "StandardBeatmapCharacteristic"; switch (characteristic) { case Characteristic.OneSaber: name = "OneColorBeatmapCharacteristic"; break; case Characteristic.NoArrows: name = "NoArrowsBeatmapCharacteristic"; break; case Characteristic.Standard: name = "StandardBeatmapCharacteristic"; break; } MonoBehaviourObject charObj = null; if (!_characteristicCache.ContainsKey(name)) { charObj = _assetsFile.Manager.MassFirstAsset <MonoBehaviourObject>(x => x.Object.Name == name).Object; _characteristicCache.Add(name, charObj); } else { charObj = _characteristicCache[name]; } return(charObj); }
public IEnumerator Spawn() { monoBehaviour = GameObject.Find("MonoBehaviourObject").GetComponent <MonoBehaviourObject>(); yield return(new WaitForSeconds(startWait)); //espera X segundos para começar Vector3 spawnPosition = new Vector3(Random.Range(-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z); //posição X aleatória Quaternion spawnRotation = Quaternion.identity; //sem rotação //enquanto houverem inimigos para instanciar for (int count = 0; count < qtd; count++) { GameObject.Instantiate(spawnObject, spawnPosition, spawnRotation); //instancia o asteróide if (count + 1 < qtd) { yield return(new WaitForSeconds(spawnWait)); //espera X segundos } } yield return(new WaitForSeconds(endWait)); //espera X segundos terminou = true; //indica que a onda de inimigos parou de ser instanciada }