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);
        }
    }
Exemple #3
0
    public void UpdateFunctionSystemsByFunctionTyep(ECSDefine.SystemFunctionType systemFunctionType, ECSDefine.SystemType systemType)
    {
        PollingOperation functionSystems;

        if (!functionSystemOperationDict.TryGetValue(systemFunctionType, out functionSystems))
        {
            functionSystems.UpdateUpdateOperationObjectList();
            functionSystems.UpdatePollingOperationObjectByOperationObjectType((int)systemType);
        }
    }
Exemple #4
0
 public void SetSystemFunctionType(ECSDefine.SystemFunctionType systemFunctionType)
 {
     this.systemFunctionType = systemFunctionType;
 }