コード例 #1
0
    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();
                    }
                }
            }
        }
    }