void ReceviceSyncEntity(SyncEntityMsg msg, params object[] objs) { //Debug.Log("ReceviceSyncEntity frame " + msg.frame); //SyncDebugSystem.LogAndDebug("ReceviceSyncEntity frame " + msg.frame); if (m_world.IsStart) { ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>(); ServiceMessageInfo info = new ServiceMessageInfo(); info.m_frame = msg.frame; info.m_type = MessageType.SyncEntity; info.m_msg = msg; //TODO 服务器缓存 未清除 rc.m_messageList.Add(info); Recalc(msg.frame); clearReson = "ReceviceSyncEntity"; } else { ExecuteSyncEntity(msg); } }
void ExecuteMessgae(ServiceMessageInfo info) { switch (info.m_type) { case MessageType.ChangeSingletonComponent: ExecuteChangeSingletonCompMsg((ChangeSingletonComponentMsg)info.m_msg); break; case MessageType.SyncEntity: ExecuteSyncEntity((SyncEntityMsg)info.m_msg); break; } }
void ReceviceDestroyEntityMsg(DestroyEntityMsg msg, params object[] objs) { Debug.Log("ReceviceDestroyEntityMsg"); ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>(); ServiceMessageInfo info = new ServiceMessageInfo(); info.m_frame = msg.frame; info.m_type = MessageType.DestroyEntity; info.m_msg = msg; rc.m_messageList.Add(info); Recalc(msg.frame); }
void ReceviceChangeSingletonCompMsg(ChangeSingletonComponentMsg msg, params object[] objs) { Debug.Log("ChangeSingletonCompMsg"); RecordComponent rc = m_world.GetSingletonComp <RecordComponent>(); ServiceMessageInfo info = new ServiceMessageInfo(); info.m_frame = msg.frame; info.m_type = MessageType.ChangeSingletonComponent; info.m_msg = msg; rc.m_messageList.Add(info); Recalc(msg.frame); }
void ReceviceSyncEntity(SyncEntityMsg msg, params object[] objs) { Debug.Log("ReceviceSyncEntity"); RecordComponent rc = m_world.GetSingletonComp <RecordComponent>(); ServiceMessageInfo info = new ServiceMessageInfo(); info.m_frame = msg.frame; info.m_type = MessageType.SyncEntity; info.m_msg = msg; rc.m_messageList.Add(info); Recalc(msg.frame); }
void ReceviceSyncEntity(SyncEntityMsg msg, params object[] objs) { //Debug.Log("ReceviceSyncEntity frame " + msg.frame); //SyncDebugSystem.LogAndDebug("ReceviceSyncEntity frame " + msg.frame); if (m_world.IsStart) { ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>(); ServiceMessageInfo info = new ServiceMessageInfo(); info.m_frame = msg.frame; info.m_type = MessageType.SyncEntity; info.m_msg = msg; //TODO 服务器缓存 未清除,并且这里可能有问题,导致主动复活出错,原因应该是实体同步指令未执行,因为帧数已错过 rc.m_messageList.Add(info); Recalc(); } else { //List<int> idList = new List<int>(); ////删除多余的实体 //for (int i = 0; i < msg.infos.Count; i++) //{ // idList.Add(msg.infos[i].id); //} //for (int i = 0; i < m_world.m_entityList.Count; i++) //{ // if(!idList.Contains( m_world.m_entityList[i].ID)) // { // m_world.DestroyEntityImmediately(m_world.m_entityList[i].ID); // } //} ExecuteSyncEntity(msg); } }
void ReceviceChangeSingletonCompMsg(ChangeSingletonComponentMsg msg, params object[] objs) { Debug.Log("ChangeSingletonCompMsg"); if (m_world.IsStart) { ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>(); ServiceMessageInfo info = new ServiceMessageInfo(); info.m_frame = msg.frame; info.m_type = MessageType.ChangeSingletonComponent; info.m_msg = msg; rc.m_messageList.Add(info); Recalc(msg.frame); } else { ExecuteChangeSingletonCompMsg(msg); } }