/// <summary>
    /// 加载窗口到内存
    /// </summary>
    /// <param name="_winCfgs">窗口配置</param>
    /// <param name="_isInstance">是否实例化窗口</param>
    /// <param name="_callback">回调</param>
    /// <param name="_parameters">参数组</param>
    void OnLoadWindowInMemory(XLS_Config_Table_UIWindowSetting[] _winCfgs, bool _isInstance, UIWindowSettingEventHandler _callback, params object[] _parameters)
    {
        Dictionary <int, IAssetBundleOutput> outputMaping = new Dictionary <int, IAssetBundleOutput>();

        foreach (XLS_Config_Table_UIWindowSetting cfg in _winCfgs)
        {
            StrayFogGamePools.assetBundleManager.LoadAssetInMemory(cfg.fileId, cfg.folderId,
                                                                   (output) =>
            {
                bool isInstance = (bool)output.input.extraParameter[0];
                XLS_Config_Table_UIWindowSetting winCfg        = (XLS_Config_Table_UIWindowSetting)output.input.extraParameter[1];
                Dictionary <int, IAssetBundleOutput> winMemory = (Dictionary <int, IAssetBundleOutput>)output.input.extraParameter[2];
                XLS_Config_Table_UIWindowSetting[] cfgs        = (XLS_Config_Table_UIWindowSetting[])output.input.extraParameter[3];
                #region 添加内存映射
                if (!winMemory.ContainsKey(winCfg.id))
                {
                    winMemory.Add(winCfg.id, output);
                }
                else
                {
                    winMemory[winCfg.id] = output;
                }
                #endregion

                bool isAllLoad = true;
                #region 是否所有配置窗口已加载到内存
                if (cfgs != null && cfgs.Length > 0)
                {
                    foreach (XLS_Config_Table_UIWindowSetting c in cfgs)
                    {
                        isAllLoad &= winMemory.ContainsKey(c.id);
                    }
                }
                #endregion

                if (isAllLoad)
                {
                    #region 内存加载完成回调
                    if (isInstance)
                    {
                        UIWindowSettingEventHandler callback = (UIWindowSettingEventHandler)output.input.extraParameter[4];
                        object[] extralParameter             = (object[])output.input.extraParameter[5];
                        callback(cfgs, winMemory, extralParameter);
                    }
                    else
                    {
                        UIWindowSettingEventHandler callback = (UIWindowSettingEventHandler)output.input.extraParameter[4];
                        object[] extralParameter             = (object[])output.input.extraParameter[5];
                        callback(cfgs, extralParameter);
                    }
                    #endregion
                }
            }, _isInstance, cfg, outputMaping, _winCfgs, _callback, _parameters);
        }
    }
Exemple #2
0
 /// <summary>
 /// 预加载窗口
 /// </summary>
 /// <param name="_windowId">窗口Id</param>
 /// <param name="_onCallback">回调</param>
 /// <param name="_parameters">参数组</param>
 public void PreloadWindow(int _windowId, UIWindowSettingEventHandler _onCallback, params object[] _parameters)
 {
     PreloadWindow(new int[1] {
         _windowId
     }, _onCallback, _parameters);
 }
Exemple #3
0
 /// <summary>
 /// 预加载窗口
 /// </summary>
 /// <param name="_windowIds">窗口Id组</param>
 /// <param name="_onCallback">回调</param>
 /// <param name="_parameters">参数组</param>
 public void PreloadWindow(int[] _windowIds, UIWindowSettingEventHandler _onCallback, params object[] _parameters)
 {
     OnLoadWindowInMemory(OnGetWindowSetting(_windowIds), false, _onCallback, _parameters);
 }
Exemple #4
0
 /// <summary>
 /// 预加载窗口
 /// </summary>
 /// <param name="_folderIds">文件夹id组</param>
 /// <param name="_fileIds">文件id组</param>
 /// <param name="_onCallback">回调</param>
 /// <param name="_parameters">参数组</param>
 public void PreloadWindow(int[] _folderIds, int[] _fileIds, UIWindowSettingEventHandler _onCallback, params object[] _parameters)
 {
     PreloadWindow(OnGetWindowSetting(_folderIds, _fileIds), _onCallback, _parameters);
 }