public void GenerateLevel(int levelindicator) { DeleteLevel(); layers = levelindicator + 1; rooms = new GameObject[layers + 1]; for (int i = 0; i < layers; i++) { rooms[i] = Instantiate(roomArray[Random.Range(0, roomArray.Length)], transform, false); rooms[i].GetComponent <RoomController>().DeactivateDoors(i); rooms[i].transform.localPosition = new Vector3(0.0f, 5.0f * (i + 1), 0.0f); } rooms[layers] = Instantiate(endRoom, transform, false); rooms[layers].transform.localPosition = new Vector3(0.0f, 5.0f * (layers + 1), 0.0f); GetRoomControllers(rooms.Length + 1); for (int i = 0; i < controllers.Length - 1; i++) { PortalManager.MergeDoors(controllers[i].exitDoor, controllers[i + 1].entryDoor); } }
private void OnTriggerEnter(Collider other) { if (!returned) { returned = true; PortalManager.CloseAllDoors(); RoomTower tower = GameObject.FindGameObjectWithTag("RoomStack").GetComponent <RoomTower>(); if (!finished) { TextMessage.AddMessage((8 - completed) + " pieces left to collect, go back."); if (completed != 0) { tower.GenerateLevel(completed); } } else { // Player won the game. PortalManager.MergeDoors(tower.GetStartRoomDoor(), tower.GetStartRoomDoor()); } } }