//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(); } } }
/// <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(); }
//异步获取 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); } } }