public void VerifyAssetbundleVersionFile(string abType, Action <bool> callback) { ClearData(); _serverAssetbundlePath = UrlPacks.GetResUrl() + abType + "/"; //加载服务器的version 文件 StartCoroutine(DownLoad(_serverAssetbundlePath + VersionFile, wwwServerVersionData => { //记录服务器version文件MD5 ParseVersionFile(wwwServerVersionData.text, _serverResVersion); //加载客户端的version文件 StartCoroutine(DownLoad(_persistentResUrl + abType + "/" + VersionFile, wwwPersistentVersionData => { //记录沙盒路径下的version文件的MD5 ParseVersionFile(wwwPersistentVersionData.text, _persistentResVersion); //计算出需要重新加载的资源 CompareVersion(); callback(_needUpdateLocalVersionFile); })); })); }
private void InitOthers() { GameObject go = new GameObject("UrlPacks"); DontDestroyOnLoad(go); //防止销毁自己 UrlPacks url = go.AddComponent <UrlPacks>(); url.InitUrls((success) => { if (success) { #if !SkipAssetBundles io.download.InitRelativePath(); io.ui.ShowLocalUI("LocalLoading", true); io.res.LoadAssetbundle(AssetBundleType.UI.ToString()); #else Messenger.Broadcast(XEvent.FinishLoading); #endif } else { Debug.LogError("无法解析URL数据。"); } }); }
//初始化路径 public void InitRelativePath() { if (Application.isEditor) { _persistentResUrl = "file://" + Environment.CurrentDirectory.Replace("\\", "/") + "/Assets/StreamingAssets/AssetBundles/"; PersistentResPath = Environment.CurrentDirectory.Replace("\\", "/") + "/Assets/StreamingAssets/AssetBundles/"; _serverResUrl = UrlPacks.GetResUrl(); } else if (Application.isMobilePlatform) { _persistentResUrl = "file://" + Application.persistentDataPath + "/AssetBundles/"; PersistentResPath = Application.persistentDataPath + "/AssetBundles/"; _serverResUrl = UrlPacks.GetResUrl(); } else { _persistentResUrl = "file://" + Application.streamingAssetsPath + "/AssetBundles/"; PersistentResPath = Application.streamingAssetsPath + "/AssetBundles/"; } }
public void DownLoadAssetbundle(string abType, Action callback) { if (_isLoadingAssetBundle) { Debug.Log("请等待资源加载完成"); return; } _callback = callback; _isLoadingAssetBundle = true; _curAssetbundleType = abType; _serverAssetbundlePath = UrlPacks.GetResUrl() + _curAssetbundleType + "/"; ClearData(); VerifyAssetbundleVersionFile(abType, needUpdate => { DownLoadRes(); }); }