Exemple #1
0
        /// <summary>
        /// (同步)加载精灵图片
        /// </summary>
        /// <param name="url"></param>
        /// <param name="completeHandler"></param>
        /// <returns></returns>
        protected static SpriteLoader LoadAssetSync(Transform requestTarget, string url, System.Action <BaseAbstracResourceLoader> completeHandler)
        {
            if (string.IsNullOrEmpty(url))
            {
                Debug.LogError(string.Format("Url Can't Be Null , TypeLoader={0}", typeof(SpriteLoader)));
                return(null);
            }

            bool         isContainLoaders = false;
            SpriteLoader spriteLoader     = ResourcesLoaderMgr.GetOrCreateLoaderInstance <SpriteLoader>(url, ref isContainLoaders);

            spriteLoader.m_OnCompleteAct.Add(completeHandler);


            spriteLoader.AddReference(requestTarget, url);
            if (isContainLoaders && spriteLoader.IsCompleted)
            {
                spriteLoader.LoadassetModel = LoadAssetModel.Sync;
                spriteLoader.OnCompleteLoad(spriteLoader.IsError, spriteLoader.Description, spriteLoader.ResultObj, spriteLoader.IsCompleted);
                return(spriteLoader);
            }
            if (spriteLoader.LoadassetModel == LoadAssetModel.Async)
            {
                spriteLoader.ForceBreakLoaderProcess();
            }
            spriteLoader.LoadassetModel       = LoadAssetModel.Sync;
            spriteLoader.m_LoadAssetCoroutine = null;
            spriteLoader.LoadSpriteAssetSync(url);
            return(spriteLoader);
        }
Exemple #2
0
        /// <summary>
        /// 卸载资源
        /// </summary>
        /// <param name="url"></param>
        /// <param name="requestTarget"></param>
        public static void UnLoadAsset(string url, object requestTarget = null)
        {
            SpriteLoader spriteLoader = ResourcesLoaderMgr.GetExitLoaderInstance <SpriteLoader>(url);

            if (spriteLoader == null)
            {
                //Debug.LogError("无法获取指定类型的加载器 " + typeof(SpriteLoader));
                return;
            }
            if (requestTarget == null)
            {
                requestTarget = spriteLoader.m_RequesterTarget;
            }

            spriteLoader.ReduceReference(spriteLoader, false);
        }