public static void VisualizeGeneration(GenerationInfo generation) { GameObject visualizedGeneration = new GameObject("Generation"); visualizedGeneration.transform.position = new Vector3(0, 0, -201); for (int x = 0; x < generation.size.x; x++) { for (int y = 0; y < generation.size.y; y++) { if (generation.rooms[x, y] != null && generation.rooms[x, y].Position == new Vector2Int(x, y)) { RoomInfo room = generation.rooms[x, y]; GameObject roomObject = new GameObject("room"); roomObject.transform.parent = visualizedGeneration.transform; roomObject.AddComponent <MeshFilter>().mesh = GameManager.singleton.OnePlane; roomObject.AddComponent <MeshRenderer>().material = new Material(GameManager.singleton.GenerationMaterial); roomObject.GetComponent <MeshRenderer>().material.color = (room.Equals(generation.startRoom) || room.Equals(generation.endRoom) ? Color.green : Color.red) - new Color(0, 0, 0, 0.8f); roomObject.transform.localPosition = new Vector3(x * 495, y * 277); roomObject.transform.localScale = new Vector3(room.Size.x * 495, room.Size.y * 277, 1); foreach (GateInfo gate in room.Gates) { GameObject gateObject = new GameObject("gate"); gateObject.AddComponent <MeshFilter>().mesh = GameManager.singleton.OnePlaneCenter; gateObject.AddComponent <MeshRenderer>().material = new Material(GameManager.singleton.GenerationMaterial); gateObject.GetComponent <MeshRenderer>().material.color = Color.blue - new Color(0, 0, 0, 0.8f); gateObject.transform.localScale = new Vector3(100, 100, 1); Vector3 pos = gate.LocalPosition.x == 0 || gate.LocalPosition.x == 2 ? new Vector3() : gate.LocalPosition.x == 1 ? new Vector3(0, 277 * room.Size.y) : new Vector3(495 * room.Size.x, 0); pos = new Vector3( gate.LocalPosition.x == 0 || gate.LocalPosition.x == 1 ? 247.5f + 495f * gate.LocalPosition.y : pos.x, gate.LocalPosition.x == 2 || gate.LocalPosition.x == 3 ? 138.5f + 277f * gate.LocalPosition.y : pos.y ); gateObject.transform.localPosition = roomObject.transform.localPosition + pos + new Vector3(0, 0, -201f); gateObject.transform.parent = roomObject.transform; } } } } }