Exemplo n.º 1
0
        /// <summary>
        /// 加载各种资源,
        ///     包括prefab预制,只能是Resource路径下的资源,加载本地的Resources资源,路径前面不用/
        ///     audio声效,
        ///     assetsBundle本地资源和服务器资源,
        ///     ttf字体,
        ///     binary本地资源和网络资源
        /// </summary>
        /// <param name="assetPath">资源路径</param>
        /// <param name="dataFormat">数据格式,默认是assetbundle</param>
        /// <param name="onComplete">加载成功回调函数</param>
        /// <param name="loadComplemeArgs">回载成功后的回调函数参数</param>
        /// <param name="onLoadError">加载失败回调函数</param>
        /// <param name="loadErrorArgs">回载失败的回调函数参数</param>
        /// <param name="onLoadProgress">显示进度回调函数</param>
        /// <param name="loadProgressArgs">显示进度时的回调参数</param>
        public void loadAssets(string assetPath, string dataFormat = ASSETS_BUNDLE, BaseLoader.OnLoadComplete onComplete = null, object loadComplemeArgs = null, BaseLoader.OnLoadError onLoadError = null, object loadErrorArgs = null, BaseLoader.OnLoadProgress onLoadProgress = null, object loadProgressArgs = null)
        {
            this.isInMapEditor = false;
            //判断缓存中有没有资源,如果有就直接返回
            BaseLoader.LoadVo loadVo = CacheManager.Instance.getCacheLoadedObject(assetPath);
            if (loadVo != null)
            {
                StartCoroutine(DispatchSuccess(onComplete, loadVo, loadComplemeArgs));
                return;
            }

            this.doLoadAsset(assetPath, dataFormat, onComplete, loadComplemeArgs, onLoadError, loadErrorArgs, onLoadProgress, loadProgressArgs);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 缓存加载数据
        /// </summary>
        public static bool cacheLoadInfo(Dictionary <string, QueueLoader.LoadIngInfo> cachesLoadIngs, string assetPath, string dataFormat = QueueLoader.ASSETS_BUNDLE, BaseLoader.OnLoadComplete onComplete = null, object loadComplemeArgs = null, BaseLoader.OnLoadError onLoadError = null, object loadErrorArgs = null, BaseLoader.OnLoadProgress onLoadProgress = null, object loadProgressArgs = null)
        {
            QueueLoader.LoadIngInfo loadingInfo = null;

            if (cachesLoadIngs.ContainsKey(assetPath) == false)
            {
                loadingInfo             = new QueueLoader.LoadIngInfo();
                loadingInfo.assetPath   = assetPath;
                loadingInfo.dataFormate = dataFormat;

                //回调方法
                loadingInfo.onLoadError    = new List <BaseLoader.OnLoadError>();
                loadingInfo.onComplete     = new List <BaseLoader.OnLoadComplete>();
                loadingInfo.onLoadProgress = new List <BaseLoader.OnLoadProgress>();

                //回调方法
                loadingInfo.onLoadError.Add(onLoadError);
                loadingInfo.onComplete.Add(onComplete);
                loadingInfo.onLoadProgress.Add(onLoadProgress);

                //回调参数dictionary
                loadingInfo.onErrorArgs    = new List <object>();
                loadingInfo.onCompleteArgs = new List <object>();
                loadingInfo.onProgressArgs = new List <object>();

                //当前的回调参数
                loadingInfo.onErrorArgs.Add(loadErrorArgs);
                loadingInfo.onCompleteArgs.Add(loadComplemeArgs);
                loadingInfo.onProgressArgs.Add(loadProgressArgs);

                cachesLoadIngs.Add(assetPath, loadingInfo);

                return(false);
            }
            else
            {
                loadingInfo = cachesLoadIngs [assetPath];;

                //当前的回调参数
                loadingInfo.onErrorArgs.Add(loadErrorArgs);
                loadingInfo.onCompleteArgs.Add(loadComplemeArgs);
                loadingInfo.onProgressArgs.Add(loadProgressArgs);

                //回调方法
                loadingInfo.onLoadError.Add(onLoadError);
                loadingInfo.onComplete.Add(onComplete);
                loadingInfo.onLoadProgress.Add(onLoadProgress);

                return(true);
            }
        }
Exemplo n.º 3
0
        private void doLoadAsset(string assetPath, string dataFormat = ASSETS_BUNDLE, BaseLoader.OnLoadComplete onComplete = null, object loadComplemeArgs = null, BaseLoader.OnLoadError onLoadError = null, object loadErrorArgs = null, BaseLoader.OnLoadProgress onLoadProgress = null, object loadProgressArgs = null)
        {
            if (LoaderUtils.cacheLoadInfo(cachesLoadIngs, assetPath, dataFormat, onComplete, loadComplemeArgs, onLoadError, loadErrorArgs, onLoadProgress, loadProgressArgs) == true)
            {
                return;
            }

            ///同一时间最大只能加载MAX_LOADING个资源
            if (BaseLoader.MAX_LOADING <= currentLoadingNumber)
            {
                return;
            }

            loadByQueue();
        }