예제 #1
0
    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");
    }
예제 #2
0
    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
        }
    }
예제 #3
0
    public static SpawnOption RandowmWave(this SpawnOption spawnOption)
    {
        int randomInt = Random.Range(0, 2);

        if (randomInt == 0)
        {
            return(SpawnOption.WaveAllAtOnce);
        }
        else
        {
            return(SpawnOption.WaveOneByOne);
        }
    }
예제 #4
0
    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)
                );
        }
    }