Exemplo n.º 1
0
    //Metodo para explorar la generacion
    public void ExploreMap()
    {
        //Obtiene el grid
        DynamicGridController grid = FindObjectOfType <DynamicGridController>();

        //Obtiene la posicion donde debe de ser creado el jugador
        Vector3 position = grid.Grid.GetCellWorldPosition(grid.width / 2, grid.height - 1, grid.length / 2);

        Instantiate(playerPrefab, position, Quaternion.identity);

        //Esconde el menu
        playMenuPanel.SetActive(false);

        //Indica que puede pausar
        canPause = true;
    }
Exemplo n.º 2
0
    //Metodo para generar el terreno y estructuras
    public void GenerateTerrain()
    {
        creationMenuPanel.SetActive(false);
        playMenuPanel.SetActive(true);

        //Asigna todos los datos a los controladorse correspondientes
        DynamicGridController grid    = FindObjectOfType <DynamicGridController>();
        TerrainGenerator      terrain = FindObjectOfType <TerrainGenerator>();
        RoomGenerator         room    = FindObjectOfType <RoomGenerator>();

        grid.width         = Parse(worldWidth);
        grid.height        = Parse(worldHeight);
        grid.length        = Parse(worldLength);
        terrain.maxHeight  = Parse(worldMaxHeight);
        terrain.seed       = Parse(worldSeed);
        terrain.scale      = Parse(worldScale);
        room.minWidth      = Parse(roomMinWidth);
        room.roomHeight    = Parse(roomCeilingHeight);
        room.minLength     = Parse(roomMinLength);
        room.roomLayer     = Parse(roomGenerationLayer);
        room.hallWidth     = Parse(roomHallWidth);
        room.maxIterations = Parse(roomIterations);

        //Destruye la malla anterior y la regenera
        FindObjectOfType <DynamicGridController>().CreateGrid();

        //Crea el terreno
        FindObjectOfType <TerrainGenerator>().StartTerrainGeneration();

        //Crea las estructuras
        FindObjectOfType <RoomGenerator>().StartRoomGeneration();

        //Posiciona la camara principal donde se pueda observar la generacion
        Vector3 position = new Vector3(grid.transform.position.x + grid.width / 2 * grid.unitSize + grid.unitSize / 2f, grid.transform.position.y + terrain.maxHeight * grid.unitSize * 2, grid.transform.position.z - 10);

        Camera.main.transform.position = position;
        Camera.main.transform.LookAt(grid.Grid.GetCellWorldPosition(grid.width / 2, 0, grid.length / 2));
    }