private void RoomCheck(GameObject Room, Transform Exit)
    {
        bool Check = ColliderCheck(Room);

        if (Check)
        {//Good room
            _rooms.Enqueue(Room);
            Room.transform.parent = _levelMap;
            Room.transform.name   = _roomCount.ToString();
            ExitInfo EI = _joinedExit.GetComponent <ExitInfo>();
            EI.SetExit(true);
            EI.ConnectExit(Exit);
            EI.ExitUpdate();
            Exit.GetComponent <ExitInfo>().ConnectExit(_joinedExit);
            Exit.GetComponent <ExitInfo>().ExitUpdate();
            _roomCount++;
        }
        else
        {//Invalid Exit Close and move on
            Debug.Log("Invalid Exit Close and move on");
            Room.transform.position = _grave.position;
            Room.transform.parent   = _grave;
            Exit.GetComponent <ExitInfo>().SetExit(false);
            ManageRoomChildren(Room, false);
            Room.GetComponent <BoxCollider>().enabled = false;
            Destroy(Room.gameObject);
        }
    }
 private void OpenRoomExits(GameObject Room)
 {//Scan through Current Room's Exits to determine if they will be Used
     Debug.Log("Random Exits for " + Room);
     _currentRoomScript = Room.GetComponent <RoomInfo>();
     for (int i = 0; i < _currentRoomScript.Exits.Length; i++)
     {
         ExitInfo ExitInfo = _currentRoomScript.Exits[i].gameObject.GetComponent <ExitInfo>();
         int      RND      = Random.Range(0, 100);
         if (!ExitInfo.ExitState() && RND <= _exitChance)
         {
             if (ExitCheck(_currentRoomScript.Exits[i]))
             {
                 ExitInfo.SetExit(true);
                 _exits.Enqueue(_currentRoomScript.Exits[i]);
             }
         }
     }
 }