Ejemplo n.º 1
0
        //Resource 方式读取
        #region Resources 方式读取

        //加载
        public void Load()
        {
#if UNITY_EDITOR
            if (!string.IsNullOrEmpty(Ext))
            {
                Load(string.Format("{0}/Resources", Application.dataPath), "");
                //失败从StreamingAsset读取
                if (_content == null)
                {
                    if (FileUtil.IsFileExistInStreamingAssets(OriginPath))
                    {
                        byte[] data = FileUtil.ReadFileInStreamingAssets(OriginPath);
                        if (data != null)
                        {
                            OnBinaryLoaded(data);
                        }
                    }
                }
            }
            else
#endif
            {
                _content = ExtResources.Load(Path);
                if (_content == null)
                {
                    JW.Common.Log.LogE("Resource.Load Fail:" + Path);
                }
                else
                {
                    PostProcessContent();
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 执行Resources.UnloadUnusedAssets,GC.Collect
 /// </summary>
 /// <param name="willUseAssets">这些资源在加载过程中或者即将加载,不能卸载他们的bundle</param>
 public void UnloadUnusedAssets(JWObjList <string> willUseAssets = null)
 {
     _resCache.UnloadUnusedResources(willUseAssets);
     BundleService.GetInstance().UnloadUnusedBundles(willUseAssets);
     ExtResources.UnloadUnusedAssets();
     System.GC.Collect();
 }
Ejemplo n.º 3
0
        //异步获取
        public IEnumerator LoadAsync(Action <ResObj> complete = null, Action <float> progress = null)
        {
#if UNITY_EDITOR
            if (!string.IsNullOrEmpty(Ext))
            {
                string pp = FileUtil.CombinePaths("file:///", Application.dataPath);
                yield return(LoadAsync(pp, "", complete, progress));
            }
            else
#endif
            {
                ResourceRequest request = ExtResources.LoadAsync(Path);
                yield return(request);

                if (request != null)
                {
                    _content = request.asset;
                    PostProcessContent();
                }

                if (complete != null)
                {
                    complete(this);
                }
            }
        }