Example #1
0
        public int UF_LoadTextureAsync(string textureName, DelegateTexture callback)
        {
            var tex = RefObjectManager.UF_GetInstance().UF_GetRefObject <Texture2D>(textureName, false) as Texture2D;

            if (tex != null)
            {
                if (callback != null)
                {
                    callback(tex);
                }
            }
            else
            {
                DelegateObject _loadfinish = delegate(UnityEngine.Object image) {
                    Texture2D texture = image as Texture2D;
                    if (texture != null)
                    {
                        RefObjectManager.UF_GetInstance().UF_RetainRef(texture);
                    }
                    if (callback != null)
                    {
                        callback(texture);
                    }
                };
                return(AssetSystem.UF_GetInstance().UF_AsyncLoadObjectImage(textureName, _loadfinish));
            }
            return(0);
        }
Example #2
0
        public int UF_LoadTextureFromCacheOrDownload(string url, DelegateTexture methodCallback)
        {
            //解析出名字
            string fileName  = Path.GetFileNameWithoutExtension(url);
            string localfile = GlobalPath.TexturePath + fileName;
            //指定的url图片名字转化为本地图片名字
            bool isWebToLocal = false;

            if (string.IsNullOrEmpty(fileName))
            {
                return(0);
            }

            if (methodCallback == null)
            {
                Debug.LogWarning("LoadTextureFromCacheOrDownload with Not Callback, Invoke Method Failed");
                return(0);
            }

            if (m_DicMapWebTextureToLocal.ContainsKey(fileName))
            {
                fileName     = m_DicMapWebTextureToLocal [fileName];
                isWebToLocal = true;
            }

            var tex = RefObjectManager.UF_GetInstance().UF_LoadRefObject <Texture2D>(fileName, false) as Texture2D;

            if (tex != null)
            {
                if (methodCallback != null)
                {
                    methodCallback(tex);
                }
                return(0);
            }

            if (isWebToLocal)
            {
                Texture2D image = UF_LoadTexture(fileName);
                if (image == null)
                {
                    image = UF_LoadTextureLocal(GlobalPath.TexturePath + fileName);
                }
                if (methodCallback != null)
                {
                    methodCallback(image);
                }
                return(0);
            }

            //检查本地是否存在缓存图片
            if (File.Exists(localfile))
            {
                //				Debug.Log ("load form Cache:" + localfile);
                Texture2D t2d = UF_LoadTextureLocal(localfile);
                if (methodCallback != null)
                {
                    methodCallback(t2d);
                }
                return(0);
            }
            else
            {
                //				Debug.Log ("load form Web:" + url);
                if (!m_DicWebTextureRequeset.ContainsKey(fileName))
                {
                    m_DicWebTextureRequeset.Add(fileName, methodCallback);
                }
                else
                {
                    m_DicWebTextureRequeset[fileName] += methodCallback;
                }
                return(FrameHandle.UF_AddCoroutine(UF_ILoadTextureFormWeb(url)));
            }
        }