public IEnumerator dungeonStarter() { SpawnOption easyFood = new SpawnOption(); easyFood.maxSpawnCount = 10; easyFood.minSpawnCount = 10; easyFood.spawnRoom = 0; easyFood.spawnByWall = false; easyFood.gameObject = chest; if (difficulty == "easy") { dungeonizer.maximumRoomCount = 10; dungeonizer.spawnOptions[0] = easyFood; } else if (difficulty == "hard") { dungeonizer.maximumRoomCount = 20; } else { dungeonizer.maximumRoomCount = 50; } Debug.Log("START"); dungeonizer.Generate(); //generates yield return(new WaitForSeconds(0)); //<-- here loadingScreen.SetActive(false); Debug.Log("GENERATED"); }
IEnumerator SelectSpawnOption() { while (true) { SpawnOption randomSpawnOption = spawnOption; if (spawnOption == SpawnOption.RandomWave) { randomSpawnOption = spawnOption.RandowmWave(); } Coroutine selectedCoroutine; if (randomSpawnOption == SpawnOption.WaveAllAtOnce) { selectedCoroutine = StartCoroutine(SpawnWaveAllAtOnce()); } else if (randomSpawnOption == SpawnOption.WaveOneByOne) { selectedCoroutine = StartCoroutine(SpawnWaveOneByOne()); } else // SpawnOption.OneAtOnce { selectedCoroutine = StartCoroutine(SpawnOneAtOnce()); } yield return(selectedCoroutine); // wait for selected coroutine } }
public static SpawnOption RandowmWave(this SpawnOption spawnOption) { int randomInt = Random.Range(0, 2); if (randomInt == 0) { return(SpawnOption.WaveAllAtOnce); } else { return(SpawnOption.WaveOneByOne); } }
public void Spawn() { SpawnOption t = ChooseSpawnOption(); if (t != null && t.prefab != null) { GameObject obj = Instantiate(t.prefab, transform.position, transform.rotation); if (setParent) { obj.transform.SetParent(transform); } obj.transform.Rotate( Random.Range(-randomRotation.x, randomRotation.x), Random.Range(-randomRotation.y, randomRotation.y), Random.Range(-randomRotation.z, randomRotation.z) ); } }