Esempio n. 1
0
 void Start()
 {
     if (completedRooms == null)
     {
         List <RoomObject> rooms = roomSelector.selectRooms();
         completedRooms = instaniateRooms(rooms);
         completedRooms = npcGenerator.generateNPCs(completedRooms);
     }
     else
     {
         completedRooms = instaniateRooms(completedRooms);
         npcGenerator.regenerateNPCs(completedRooms);
     }
     floorGenerator.generateFloor(completedRooms);
     roofGenerator.generateRoof(completedRooms);
     wallGenerator.generateWalls(completedRooms);
     roomSetup.setupEachRoom(completedRooms);
     blockageGenerator.generate(completedRooms);
 }
    public void generateMesh(int[,] map, float squareSize)
    {
        triangleDict.Clear();
        checkedVertIndex.Clear();
        wallVertPaths.Clear();

        sGrid = new SquareGrid(map, squareSize, wallSize);

        int gridX = sGrid.grid.GetLength(0);
        int gridY = sGrid.grid.GetLength(1);

        vertices  = new List <Vector3>();
        triangles = new List <int>();

        for (int x = 0; x < gridX; x++)
        {
            for (int y = 0; y < gridY; y++)
            {
                buildMeshFromSquare(sGrid.grid[x, y]);
            }
        }

        Mesh mesh = new Mesh();

        GetComponent <MeshFilter>().mesh = mesh;

        mesh.vertices  = vertices.ToArray();
        mesh.triangles = triangles.ToArray();
        mesh.RecalculateNormals();

        generateWallMesh();

        FloorGenerator fG = GetComponent <FloorGenerator>();

        fG.generateFloor(squareSize * map.GetLength(0), squareSize * map.GetLength(1));
    }