private void RemoveRoom(Room room) { Debug.Log("RemoveRoom " + room.RoomId); Debug.Assert(room.CurPlayerCount == 0); _roomId2Room.Remove(room.RoomId); if (_gameType2Rooms.TryGetValue(room.GameType, out var lst)) { lst.Remove(room); if (lst.Count == 0) { _gameType2Rooms.Remove(room.GameType); } } if (_type2RroomInfos.TryGetValue(room.GameType, out var pInfolst)) { pInfolst.Remove(room.Info); if (lst.Count == 0) { _gameType2Rooms.Remove(room.GameType); } } _cachedType2RoomInfos.Remove(room.GameType); Pool.Return(room); }
public override void OnRecycle() { Room = null; Peer = null; }