internal void Reset()
{
peer_.Reset();
OwnRoom = null;
IsEntered = false;
IsReady = false;
IsDebug = false;
m_UserControlState = (int)GameFramework.UserControlState.User;
m_HaveHpArmor = false;
m_Hp = 0;
m_Energy = 0;
m_HaveEnterPosition = false;
m_EnterX = 0;
m_EnterY = 0;
m_LastIsMoving = false;
m_LastSampleTime = 0;
m_LastClientPosition = Vector3.Zero;
m_LastMoveVelocity = 0;
m_LastMoveDirCosAngle = 1;
m_LastMoveDirSinAngle = 0;
m_TimeCounter = 0;
m_CharacterCreateTime = 0;
}
public void Destroy() { LogSys.Log(LOG_TYPE.INFO, "room {0}({1}) destroy.", RoomId, LocalID); OnDestroy(); m_RoomUserMgr.ActiveScene.Reset(); m_ScenePool.RecycleScene(m_RoomUserMgr.ActiveScene); m_RoomUserMgr.ActiveScene = null; this.CurrentState = RoomState.Unuse; int userCt = m_RoomUserMgr.RoomUsers.Count; for (int i = userCt - 1; i >= 0; --i) { User user = m_RoomUserMgr.RoomUsers[i]; if (null != user) { LogSys.Log(LOG_TYPE.INFO, "FreeUser {0} for {1} {2}, [Room.Destroy]", user.LocalID, user.Guid, user.GetKey()); user.Reset(); m_UserPool.FreeUser(user.LocalID); m_RoomUserMgr.RoomUsers.RemoveAt(i); } } for (int i = 0; i < m_RoomUserMgr.RoomObservers.Length; ++i) { m_RoomUserMgr.RoomObservers[i].Reset(); } }