IEnumerator Start() { if (meteoritePrefab == null) { Debug.LogError("No meteorite prefab set. Please correct and restart.", this); enabled = false; yield break; } player = FindObjectOfType(typeof(Player)) as Player; gameGUI = GetComponent <GameGUI> (); menuGUI = GetComponent <MenuGUI> (); creditsGUI = GetComponent <CreditsGUI> (); setupGUI = GetComponent <SetupGUI> (); // Instantiate meteorite and warning object pools - one instance of each per frame // meteoritePool = new Queue <Meteorite> (); warningPool = new Queue <ImpactWarning> (); for (int i = 0; i < poolSize && Application.isPlaying; i++) { yield return(null); DespawnMeteorite(Instantiate(meteoritePrefab, transform.position, transform.rotation) as Meteorite); DespawnWarning(Instantiate(meteoriteWarningPrefab, transform.position, transform.rotation) as ImpactWarning); } while (Application.isPlaying) // Meteorite spawn loop { yield return(new WaitForSeconds(Random.Range(minimumDelay, maximumDelay))); SpawnMeteorite( transform.position + transform.forward * Random.Range(showerArea.y * -0.5f, showerArea.y * 0.5f) + transform.right * Random.Range(showerArea.x * -0.5f, showerArea.x * 0.5f), transform.rotation * Quaternion.AngleAxis(90.0f, transform.right) ); } }
IEnumerator Start() { if (meteoritePrefab == null) { Debug.LogError ("No meteorite prefab set. Please correct and restart.", this); enabled = false; yield break; } player = FindObjectOfType (typeof (Player)) as Player; gameGUI = GetComponent<GameGUI> (); menuGUI = GetComponent<MenuGUI> (); creditsGUI = GetComponent<CreditsGUI> (); setupGUI = GetComponent<SetupGUI> (); // Instantiate meteorite and warning object pools - one instance of each per frame // meteoritePool = new Queue<Meteorite> (); warningPool = new Queue<ImpactWarning> (); for (int i = 0; i < poolSize && Application.isPlaying; i++) { yield return null; DespawnMeteorite (Instantiate (meteoritePrefab, transform.position, transform.rotation) as Meteorite); DespawnWarning (Instantiate (meteoriteWarningPrefab, transform.position, transform.rotation) as ImpactWarning); } while (Application.isPlaying) // Meteorite spawn loop { yield return new WaitForSeconds (Random.Range (minimumDelay, maximumDelay)); SpawnMeteorite ( transform.position + transform.forward * Random.Range (showerArea.y * -0.5f, showerArea.y * 0.5f) + transform.right * Random.Range (showerArea.x * -0.5f, showerArea.x * 0.5f), transform.rotation * Quaternion.AngleAxis (90.0f, transform.right) ); } }