Пример #1
0
    private GameAssetResource GetAssetResource(string url, AssetPRI assetPRIType, bool bAssetInEditor)
    {
        GameAssetResource localAssetResource = null;

        if (!this.m_dicAllAssetRes.TryGetValue(url, out localAssetResource))
        {
            localAssetResource = new GameAssetResource(url);
            localAssetResource.IsAssetInEditor = bAssetInEditor;
            if (this.m_allLoadFinishedEventHandler != null)
            {
                this.m_nSizeNeedToLoadFromStart++;
            }
            this.m_WWWqueue.Enqueue(localAssetResource);
            this.m_dicAllAssetRes.Add(url, localAssetResource);
        }
        return(localAssetResource);
    }
Пример #2
0
        public IAssetRequest CreateAssetRequest(string strCompleteUrl, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType, EnumAssetType eAssetType)
        {
            if (this.m_resourceManager == null)
            {
                AssetLogger.Error("null == m_resourceManager");
                return(null);
            }
            IAssetRequest result = null;

            try
            {
                result = this.m_resourceManager.CreateAssetRequest(strCompleteUrl, callBackFun, assetPRIType, eAssetType);
            }
            catch (Exception ex)
            {
                AssetLogger.Fatal(ex.ToString());
            }
            return(result);
        }
Пример #3
0
    public IAssetRequest LoadTexture(string url, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
    {
        if (string.IsNullOrEmpty(url))
        {
            Debug.LogError("string.IsNullOrEmpty(url) == true");
            return(null);
        }
        string text = string.Format("{0}/{1}.jpg", this.m_strBaseResDir, url);

        text = GameResourceManager.StandardlizePath(text);
        GameAssetResource assetResource = this.GetAssetResource(text, assetPRIType, true);

        return(new GameAssetRequest(assetResource, callBackFun));
    }
Пример #4
0
 public IAssetRequest CreateAssetRequest(string url, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType, EnumAssetType eAssetType)
 {
     return(this.CreateAssetRequest(url, null, callBackFun, assetPRIType, eAssetType));
 }
Пример #5
0
    public IAssetRequest CreateAssetRequest(string assetUrl, List <string> dependes, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType, EnumAssetType eAssetType)
    {
        if (string.IsNullOrEmpty(assetUrl))
        {
            Debug.LogError("string.IsNullOrEmpty(assetUrl) == true");
            return(null);
        }
        assetUrl = string.Format("{0}/{1}", this.m_strBaseResDir, assetUrl);

        assetUrl = GameResourceManager.StandardlizePath(assetUrl);
        GameAssetResource assetResource = this.GetAssetResource(assetUrl, assetPRIType, true);

        return(new GameAssetRequest(assetResource, callBackFun));
    }
        public IAssetRequest CreateAssetRequest(ResourceData resourceData, List <ResourceData> depResourceList, AssetRequestFinishedEventHandler callback, AssetPRI assetPRI)
        {
            if (resourceData == null)
            {
                return(null);
            }
            AssetLogger.Debug("CreateAssetRequest:" + resourceData.mResourceName);
            if (string.IsNullOrEmpty(resourceData.mPath))
            {
                return(null);
            }
            LocalAssetCollectDepResource depResource = null;

            if (this.m_dicAssetCollectDepResource.TryGetValue(resourceData.mPath, out depResource))
            {
                return(new LocalAssetRequest(depResource, callback));
            }
            depResource     = LocalAssetCollectDepResource.Create();
            depResource.URL = resourceData.mPath;
            this.m_dicAssetCollectDepResource.Add(depResource.URL, depResource);
            if (depResourceList != null)
            {
                depResource.SetDepSize(depResourceList.Count);//初始化depAssetResource[],引用资源的数组
                for (int i = 0; i < depResourceList.Count; i++)
                {
                    ResourceData resourceData2 = depResourceList[i];
                    Debug.Log(resourceData2.mResourceName);
                    LocalAssetResource assetResource = this.CreateAssetResource(resourceData2, new AssetLoadFinishedEventHandler(depResource.AssetComplete), assetPRI);
                    depResource.AddDep(assetResource, i);//赋值depAssetResource[]
                    Debug.Log(assetResource == null);
                }
            }
            LocalAssetResource asset = this.CreateAssetResource(resourceData, new AssetLoadFinishedEventHandler(depResource.AssetComplete), assetPRI);

            depResource.SetAsset(asset);
            depResource.EndCreate();
            return(new LocalAssetRequest(depResource, callback));
        }
Пример #7
0
    public IAssetRequest LoadScene(string url, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
    {
        if (string.IsNullOrEmpty(url))
        {
            Debug.LogError("string.IsNullOrEmpty(url) == true");
            return(null);
        }
        string            url2          = string.Format("{0}/{1}.unity3d", this.m_strBaseResDir, url);
        GameAssetResource assetResource = this.GetAssetResource(url2, assetPRIType, true);

        return(new GameAssetRequest(assetResource, callBackFun));
    }
        public IAssetRequest CreateAssetRequest(string path, AssetRequestFinishedEventHandler callback, AssetPRI assetPRI, EnumAssetType assetType)
        {
            if (string.IsNullOrEmpty(path))
            {
                AssetLogger.Error("string.IsNullOrEmpty(path) == true");
                return(null);
            }
            string arg  = Path.GetDirectoryName(path).ToLower();
            string text = LocalResourceManager.ChangePathToFilenameWithoutExtension(path);

            path = string.Format("data/{0}/{1}.ab", arg, text);
            ResourceData resourceData = CollectDepResourceDataMap.RefResource(text, path, 0, assetType);

            return(this.CreateAssetRequest(resourceData, null, callback, assetPRI));
        }
        /// <summary>
        /// 创建需要加载的LocalAssetResource,如果存在就获取,添加到下载链表中
        /// </summary>
        /// <param name="resource"></param>
        /// <param name="handler"></param>
        /// <param name="assetPRI"></param>
        /// <returns></returns>
        public LocalAssetResource CreateAssetResource(ResourceData resource, AssetLoadFinishedEventHandler handler, AssetPRI assetPRI)
        {
            if (resource == null)
            {
                return(null);
            }
            string             mPath         = resource.mPath;
            string             key           = Path.GetFileNameWithoutExtension(mPath).ToLower();//获取文件名,不包括扩展名
            LocalAssetResource assetResource = new LocalAssetResource(resource);

            if (!this.m_dicAssetResoure.ContainsKey(key))//如果不包含这个资源,就创建资源然后添加到资源集合中
            {
                assetResource         = new LocalAssetResource(resource);
                assetResource.PRIType = assetPRI;
                this.m_dicAssetResoure.Add(key, assetResource);
                if (this.m_allLoadFinishedEventHandler != null)
                {
                    this.m_total += assetResource.Size;
                }
                Debug.Log(assetResource.URL + "添加到下载链表!");
                this.m_linkedListNeedToLoad.AddLast(assetResource);//把需要加载的资源添加到链表的最后
            }
            else
            {
                assetResource = this.m_dicAssetResoure[key];
                Debug.Log("之前已经加载过了:" + assetResource.URL);
            }
            if (handler != null && !assetResource.Canceled)//设置加载完成之后的委托
            {
                assetResource.SetLoadFinishedHandler((AssetLoadFinishedEventHandler)Delegate.Combine(assetResource.GetLoadFinishedHandler(), handler));
            }
            return(assetResource);
        }
        public IAssetRequest LoadScene(string path, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
        {
            IAssetRequest result;

            if (string.IsNullOrEmpty(path))
            {
                AssetLogger.Error("string.IsNullOrEmpty(path) == true");
                result = null;
            }
            else
            {
                string directoryName = Path.GetDirectoryName(path);
                string text          = LocalResourceManager.ChangePathToFilenameWithoutExtension(path);
                path = string.Format("data/{0}/{1}.unity3d", directoryName, text);
                ResourceData resourceData = CollectDepResourceDataMap.RefResource(text, path, 0, EnumAssetType.eAssetType_Scene);
                result = this.CreateAssetRequest(resourceData, null, callBackFun, assetPRIType);
            }
            return(result);
        }
 public IAssetRequest CreateAssetRequest(string path, AssetRequestFinishedEventHandler callback, AssetPRI assetPRI)
 {
     return(this.CreateAssetRequest(path, callback, assetPRI, EnumAssetType.eAssetType_AssetBundlePrefab));
 }
        /// <summary>
        /// 加载模型资源
        /// </summary>
        /// <param name="path">Data/Model/HeroModel/{0}</param>
        /// <param name="callBackFun"></param>
        /// <param name="assetPRIType"></param>
        /// <returns></returns>
        public IAssetRequest LoadModel(string path, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
        {
            IAssetRequest result;

            if (string.IsNullOrEmpty(path))
            {
                AssetLogger.Error("string.IsNullOrEmpty(path) == true");
                result = null;
            }
            else
            {
                string                 name                   = LocalResourceManager.ChangePathToFilenameWithoutExtension(path);
                ResourceData           resourceData           = null;
                List <ResourceData>    dependes               = null;
                CollectDepResourceData collectDepResourceData = this.m_DicModelResourceData.GetCollectDepResourceData(name, out resourceData, out dependes);
                if (null != collectDepResourceData)
                {
                    result = this.CreateAssetRequest(resourceData, dependes, callBackFun, assetPRIType);
                }
                else
                {
                    AssetLogger.Error(string.Format("null == collectDepResourceData:{0}", path));
                    result = null;
                }
            }
            return(result);
        }
        public IAssetRequest LoadEffect(string path, AssetRequestFinishedEventHandler callback, AssetPRI assetPRI)
        {
            if (string.IsNullOrEmpty(path))
            {
                AssetLogger.Error("string.IsNullOrEmpty(path) == true");
                return(null);
            }
            string                 name                   = LocalResourceManager.ChangePathToFilenameWithoutExtension(path);
            ResourceData           resourceData           = null;
            List <ResourceData>    list                   = null;
            CollectDepResourceData collectDepResourceData = this.m_DicEffectReourceData.GetCollectDepResourceData(name, out resourceData, out list);

            if (collectDepResourceData != null)
            {
                return(this.CreateAssetRequest(resourceData, list, callback, assetPRI));
            }
            AssetLogger.Error(string.Format("null == collectDepResourceData:{0}", path));
            return(null);
        }
        /// <summary>
        /// 加载UI资源
        /// </summary>
        /// <param name="path"></param>
        /// <param name="callback"></param>
        /// <param name="assetPRI"></param>
        /// <returns></returns>
        public IAssetRequest LoadUI(string path, AssetRequestFinishedEventHandler callback, AssetPRI assetPRI)
        {
            if (string.IsNullOrEmpty(path))
            {
                AssetLogger.Error("string.IsNullOrEmpty(path) == true");
                return(null);
            }
            string                 text                   = LocalResourceManager.ChangePathToFilenameWithoutExtension(path);//路径转成文件名不带后缀
            ResourceData           resourceData           = null;
            List <ResourceData>    dependes               = null;
            CollectDepResourceData collectDepResourceData = this.m_DicUIResourceData.GetCollectDepResourceData(text, out resourceData, out dependes);

            if (collectDepResourceData != null)
            {
                return(this.CreateAssetRequest(resourceData, dependes, callback, assetPRI));//创建请求资源实例
            }
            AssetLogger.Error(string.Format("null == collectDepResourceData:{0}", text));
            return(null);
        }
Пример #15
0
        public IAssetRequest LoadEffect(string relativeUrl, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
        {
            if (this.m_resourceManager == null)
            {
                AssetLogger.Error("null == m_resourceManager");
                return(null);
            }
            IAssetRequest result = null;

            try
            {
                result = this.m_resourceManager.LoadEffect(relativeUrl, callBackFun, assetPRIType);
            }
            catch (Exception ex)
            {
                AssetLogger.Fatal(ex.ToString());
            }
            return(result);
        }
Пример #16
0
    public IAssetRequest LoadAudio(string url, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
    {
        if (string.IsNullOrEmpty(url))
        {
            Debug.LogError("string.IsNullOrEmpty(url) == true");
            return(null);
        }
        string text = string.Format("{0}/{1}", this.m_strBaseResDir, url);

        try
        {
            if (!Path.HasExtension(text))
            {
                text = Path.ChangeExtension(text, ".mp3");
            }
        }
        catch (Exception ex)
        {
            XLog.Log.Fatal(ex.Message);
        }
        text = GameResourceManager.StandardlizePath(text);
        GameAssetResource assetResource = this.GetAssetResource(text, assetPRIType, true);

        return(new GameAssetRequest(assetResource, callBackFun));
    }
Пример #17
0
        public IAssetRequest LoadScene(string relativeUrl, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
        {
            IAssetRequest result;

            if (null == this.m_resourceManager)
            {
                AssetLogger.Error("null == m_resourceManager");
                result = null;
            }
            else
            {
                IAssetRequest assetRequest = null;
                try
                {
                    assetRequest = this.m_resourceManager.LoadScene(relativeUrl, callBackFun, assetPRIType);
                }
                catch (Exception ex)
                {
                    AssetLogger.Fatal(ex.ToString());
                }
                result = assetRequest;
            }
            return(result);
        }
Пример #18
0
 public IAssetRequest LoadResAsyn(string url, AssetRequestFinishedEventHandler callBackFun, AssetPRI assetPRIType)
 {
     if (this.m_loadResAsynEventHandler != null)
     {
         return(this.m_loadResAsynEventHandler(url, callBackFun, assetPRIType));
     }
     Debug.LogError("null == m_loadUIAsynEventHandler");
     return(null);
 }