private void CreateWall(Wall original, int numConnections, bool north, bool south, bool east, bool west) { Wall wall = null; switch (numConnections) { case 1: wall = Instantiate(Wall1).GetComponent <Wall>(); RotateEndWall(wall, north, south, east, west); break; case 2: if ((north && south) || (east && west)) { wall = Instantiate(Wall2Straight).GetComponent <Wall>(); RotateStraightWall(wall, north, south, east, west); } else { wall = Instantiate(Wall2Corner).GetComponent <Wall>(); RotateCornerWall(wall, north, south, east, west); } break; case 3: wall = Instantiate(Wall3).GetComponent <Wall>(); RotateTWall(wall, north, south, east, west); break; case 4: wall = Instantiate(Wall4).GetComponent <Wall>(); break; } wall.transform.position = original.transform.position; wall.transform.SetParent(wallParent); floor.AddObjectToCell(wall, wall.transform.position); }