public void GenerateRoom() { //instantiate here Room newRoom = new Room (transform.position, RandomSize(),RandomSize()); //test room = new GameObject ("Room"+transform.position); room.transform.position = transform.position; //add if (irregularShapeOrNot == true) { irregularShapeType = RandomShape (); newRoom = irreguralize (newRoom, irregularShapeType); } else { newRoom = calculateTilePosition(newRoom); } //Generate floor foreach (Tile tile in newRoom.floorTiles) { GameObject temp = (GameObject)Instantiate (floorTile, new Vector3 (tile.x, 0, tile.z), Quaternion.identity); temp.transform.parent = room.transform; roomTiles.Add (temp); } //Generate wall foreach (Tile tile in newRoom.wallTiles) { GameObject temp = (GameObject)Instantiate(wallTile, new Vector3(tile.x,0,tile.z), Quaternion.Euler(0,tile.rotateAngle,0)); temp.transform.parent = room.transform; roomTiles.Add(temp); } //Generate corner foreach (Tile tile in newRoom.cornerTiles) { GameObject temp = (GameObject)Instantiate(cornerTile, new Vector3(tile.x,0,tile.z), Quaternion.Euler(0,tile.rotateAngle,0)); temp.transform.parent = room.transform; roomTiles.Add(temp); } return; }
//using method to build irregularRoom public Room irreguralize(Room room, IrregularShape type) { if (type == IrregularShape.Tshape) { room = TshapeGenerator (room); } else if (type == IrregularShape.Lshape) { room =LshapeGenerator (room); }/* else if (type == IrregularShape.Cross) { room = CrossGenerator (room); } else if (type == IrregularShape.Eshape) { room = EshapeGenerator(room); }*/ return room; }