void ConnectRooms(GameObject _previousRoom, GameObject _currentSpawnedRoom, string _baseConnectionName, string _targetConnectionName) { RoomScript l_baseRoom = _previousRoom.GetComponent <RoomScript>(); RoomScript l_targetRoom = _currentSpawnedRoom.GetComponent <RoomScript>(); Vector3 l_newPosition = Vector3.zero; Vector3 l_baseRoomSize = l_baseRoom.ReturnRoomSize(); l_baseRoom.GenerateConnectionsOnRoom(_baseConnectionName); l_targetRoom.GenerateConnectionsOnRoom(_targetConnectionName); if (!_baseConnectionName.Contains("stairs")) { if (_baseConnectionName.Contains("up")) { l_newPosition = new Vector3(l_baseRoom.transform.position.x, l_baseRoom.transform.position.y, l_baseRoom.returnPosition("up").z + (l_baseRoomSize.z / 2) + m_offsetRoomPositions); } else if (_baseConnectionName.Contains("down")) { l_newPosition = new Vector3(l_baseRoom.transform.position.x, l_baseRoom.transform.position.y, l_baseRoom.returnPosition("down").z - (l_baseRoomSize.z / 2) - m_offsetRoomPositions); } else if (_baseConnectionName.Contains("left")) { l_newPosition = new Vector3(l_baseRoom.returnPosition("left").x - (l_baseRoomSize.x / 2) - m_offsetRoomPositions, l_baseRoom.transform.position.y, l_baseRoom.transform.position.z); } else if (_baseConnectionName.Contains("right")) { l_newPosition = new Vector3(l_baseRoom.returnPosition("right").x + (l_baseRoomSize.x / 2) + m_offsetRoomPositions, l_baseRoom.transform.position.y, l_baseRoom.transform.position.z); } } else { //PROBLEMA AL HABER MAS DE 1 STAIR EN LA MISMA SALA StaircaseScript conectedStairs = l_baseRoom.GetComponentInChildren <StaircaseScript>(); Vector3 positionToConnect = conectedStairs.m_endOfStaircaseGameobject.transform.position; if (_baseConnectionName.Contains("up")) { l_newPosition = new Vector3(positionToConnect.x, positionToConnect.y + (l_baseRoomSize.y / 3), positionToConnect.z + (l_baseRoomSize.z / 2)); } else if (_baseConnectionName.Contains("down")) { l_newPosition = new Vector3(positionToConnect.x, positionToConnect.y + (l_baseRoomSize.y / 3), positionToConnect.z - (l_baseRoomSize.z / 2)); } else if (_baseConnectionName.Contains("left")) { l_newPosition = new Vector3(positionToConnect.x - (l_baseRoomSize.x / 2), positionToConnect.y + (l_baseRoomSize.y / 3), positionToConnect.z); } else if (_baseConnectionName.Contains("right")) { l_newPosition = new Vector3(positionToConnect.x + (l_baseRoomSize.x / 2), positionToConnect.y + (l_baseRoomSize.y / 3), positionToConnect.z); } } l_targetRoom.transform.localPosition = l_newPosition; if (_baseConnectionName.Contains("key")) { GameObject keyPrefab = Instantiate(m_keyPrefab); keyPrefab.transform.parent = _previousRoom.transform; keyPrefab.transform.position = _previousRoom.transform.position; } }