public void UpdateSystemExecute() { commandUnit.CacheCommandListToExecuteCommandList(); //功能系统顺序 for (int index = 0; index < systemFunctionTypePriorityArray.Length; index++) { ECSDefine.SystemFunctionType systemFunctionType = systemFunctionTypePriorityArray[index]; List <ECSDefine.SystemType> systemTypeList; if (function2SystemTypeDict.TryGetValue(systemFunctionType, out systemTypeList)) { // 执行系统顺序 for (int systemIndex = 0; systemIndex < systemTypeList.Count; systemIndex++) { ECSDefine.SystemType systemType = systemTypeList[systemIndex]; // 执行命令 commandUnit.PopSystemTypeCommandList(systemType); // 执行功能系统 executeSystemUnit.UpdateFunctionSystemsByFunctionTyep(systemFunctionType, systemType); } if (GameUnitSystemFunctionType == systemFunctionType) { for (int unitIndex = 0; unitIndex < ECSInstanceDefine.GameUnitPriorityList.Count; unitIndex++) { ECSInstanceDefine.GameUnitPriorityList[unitIndex].Update(); } } } } }
private void InitFunction2SystemTypeDict() { function2SystemTypeDict = new Dictionary <ECSDefine.SystemFunctionType, List <ECSDefine.SystemType> >(); Dictionary <ECSDefine.SystemType, ECSDefine.SystemFunctionType> .Enumerator enumerator = ECSInstanceDefine.SystemType2Function.GetEnumerator(); while (enumerator.MoveNext()) { ECSDefine.SystemFunctionType systemFunctionType = enumerator.Current.Value; ECSDefine.SystemType systemType = enumerator.Current.Key; List <ECSDefine.SystemType> systemTypeList; if (!function2SystemTypeDict.TryGetValue(systemFunctionType, out systemTypeList)) { systemTypeList = new List <ECSDefine.SystemType>(); function2SystemTypeDict.Add(systemFunctionType, systemTypeList); } systemTypeList.Add(systemType); } Dictionary <ECSDefine.SystemFunctionType, List <ECSDefine.SystemType> > .Enumerator systemFunctionTypeEnumerator = function2SystemTypeDict.GetEnumerator(); while (systemFunctionTypeEnumerator.MoveNext()) { List <ECSDefine.SystemType> systemTypeList = systemFunctionTypeEnumerator.Current.Value; systemTypeList.Sort(SystemFunctionTypeSystemSotr); } }
public void UpdateFunctionSystemsByFunctionTyep(ECSDefine.SystemFunctionType systemFunctionType, ECSDefine.SystemType systemType) { PollingOperation functionSystems; if (!functionSystemOperationDict.TryGetValue(systemFunctionType, out functionSystems)) { functionSystems.UpdateUpdateOperationObjectList(); functionSystems.UpdatePollingOperationObjectByOperationObjectType((int)systemType); } }
public void SetSystemFunctionType(ECSDefine.SystemFunctionType systemFunctionType) { this.systemFunctionType = systemFunctionType; }