public void RemoveUser(User user, bool free)
{
if (user == null)
{
return;
}
foreach (User otheruser in m_RoomUsers)
{
if (null != otheruser && otheruser != user)
{
otheruser.RemoveSameRoomUser(user);
}
}
user.ClearSameRoomUser();
if (null != m_ActiveScene)
{
Scene scene = m_ActiveScene;
scene.LeaveScene(user);
}
LogSys.Log(LOG_TYPE.INFO, "FreeUser {0} for {1} {2}, [Room.RemoveUser]", user.LocalID, user.Guid, user.GetKey());
m_RoomUsers.Remove(user);
if (free)
{
m_UserPool.FreeUser(user.LocalID);
}
}