예제 #1
0
    private IEnumerator InstantiateRooms()
    {
        if (WorldGeneration.GetInstance().DEBUG)
        {
            WorldGeneration.GetInstance().DEBUGCANVAS.ClearHighlightBiome();
        }

        for (int y = 0; y < myBiomeSideSize; ++y)
        {
            for (int x = 0; x < myBiomeSideSize; ++x)
            {
                if (myWorld[y * myBiomeSideSize + x].myRoomUsed == true)
                {
                    Room room = Instantiate(myRoomPrefab, myTransform);
                    room.transform.localPosition = new Vector3(x * myRoomSideSize * mySpriteSpace, y * myRoomSideSize * mySpriteSpace, 0);
                    room.myRoomData = myWorld[y * myBiomeSideSize + x];
                    myRooms.Add(room);
                    //room.ConstuctRoom(myRoomSideSize, this);

                    room.GetSeedAndGenerate(this);

                    if (myStartingRoomData.myX == x && myStartingRoomData.myY == y)
                    {
                        room.myStartingRoom = true;
                        myStartingRoom      = room;
                    }

                    room.transform.parent = myTransform;

                    LoadingManager.GetInstance().AddSpawned();

                    if (WorldGeneration.GetInstance().DEBUG)
                    {
                        WorldGeneration.GetInstance().DEBUGCANVAS.HighlightBiome(x, y);

                        yield return(new WaitForSeconds(WorldGeneration.GetInstance().STEPTIME));
                    }
                    else
                    {
                        yield return(null);
                    }
                }
            }
        }

        myGenerationDone = true;

        gameObject.SetActive(false);
    }