public void ExecuteCacheSynchroValueRsp() { for (int index = 0; index < synchroValueRspList.Count; index++) { SynchroValueRsp synchroValueRsp = synchroValueRspList[index]; ECSDefine.ComponentType componentType = synchroValueRsp.GetComponentType(); ECSDefine.SynchroValueRspSystemType synchroValueRspSystemType; if (!ECSInstanceDefine.RequireComponentType2ExecuteSystem.TryGetValue(componentType, out synchroValueRspSystemType)) { Debug.LogError($"[SynchronizationUnit] ExecuteCacheSynchroValueRsp Fail. {Enum.GetName(typeof(ECSDefine.ComponentType), componentType)}"); continue; } SynchroValueRsp.SynchroValueRspStructure synchroValueRspStructure = synchroValueRsp.GetSynchroValueRspStructure(); executeSystemUnit.ExecuteSynchroValueRspSystem(synchroValueRspSystemType, synchroValueRspStructure); } synchroValueRspList.Clear(); }
public void ExecuteSynchroValueRspSystem(ECSDefine.SynchroValueRspSystemType systemType, SynchroValueRsp.SynchroValueRspStructure synchroValueRspStructure) { int synchroValueRspSystemId = synchroValueRspSystemIdDistributionChunk.Pop(); OperationObject operationObject = synchroValueRspSystemOperation.CreateOperationObject((int)systemType, synchroValueRspSystemId); if (operationObject == null) { Debug.LogError($"[ECSModule] ExecuteSynchroValueRspSystem Fail. systemType:{Enum.GetName(typeof(ECSDefine.SynchroValueRspSystemType), systemType)}"); return; } BaseSynchroValueRspSystem synchroValueRspSystem = operationObject as BaseSynchroValueRspSystem; synchroValueRspSystem.SetGlobalUnionId(GlobalUnionId); synchroValueRspSystem.Execute(synchroValueRspStructure); synchroValueRspSystemOperation.DeleteOperationObject((int)systemType, operationObject);//执行完毕回收 }
public abstract void Execute(SynchroValueRsp.SynchroValueRspStructure synchroValueRspStructure);