/// <summary> /// Initialize this instance. /// </summary> protected IEnumerator InitInner(Action <bool> action) { var request = QABMgr.Initialize(); if (request != null) { yield return(StartCoroutine(request)); if (action != null) { action(true); } } }
/// <summary> /// 异步加载AssetBundle /// </summary> /// <param name="assetBundleName">Asset bundle name.</param> /// <param name="action">Action.</param> public void LoadABAsync(string assetBundleName, Action <bool, AssetBundle> action) { assetBundleName = assetBundleName.ToLower(); if (QABMgr.IsEditorDevMode()) { AssetBundle ab = QABMgr.LoadABSync(assetBundleName, false); if (action != null) { action(ab == null ? false : true, ab); } } else { StartCoroutine(LoadFromABAsync <AssetBundle> (assetBundleName, null, action)); } }
private void SetABPath(bool isAsync) { Debug.Log("***********hasResUpdated:" + hasResUpdated); if (hasResUpdated) { QABMgr.SetSourceABURL(Application.persistentDataPath + "/QAB/" + QPlatform.GetPlatformName() + "/"); } else { if (!isAsync && Application.platform == RuntimePlatform.Android) { QABMgr.SetSourceABURL(Application.dataPath + "!assets" + "/QAB/" + QPlatform.GetPlatformName() + "/"); } else { QABMgr.SetSourceABURL(Application.streamingAssetsPath + "/QAB/" + QPlatform.GetPlatformName() + "/"); } } }
private IEnumerator LoadFromABAsync <T> (string bundleName, string assetName, Action <bool, T> action) where T : UnityEngine.Object { float startTime = Time.realtimeSinceStartup; ABLoadAssetOperation request = QABMgr.LoadAssetAsync(bundleName, assetName, typeof(T)); if (request == null) { yield break; } yield return(StartCoroutine(request)); T prefab = request.GetAsset <T> (); float elapsedTime = Time.realtimeSinceStartup - startTime; Debug.Log(assetName + (prefab == null ? " was not" : " was") + " loaded successfully in " + elapsedTime + " seconds"); if (action != null) { action(prefab == null ? false : true, prefab); } }
/// <summary> /// 加载AssetBundle 同步加载方式 /// </summary> /// <returns>The asset.</returns> /// <param name="assetBundleName">Asset bundle name.</param> /// <param name="assetName">Asset name.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public T LoadAsset <T> (string bundleName, string assetName) where T : UnityEngine.Object { bundleName = bundleName.ToLower(); return(QABMgr.LoadAsset <T> (bundleName, assetName, typeof(T))); }
/// <summary> /// 初始化加载manifest的同步方式 /// </summary> public void Init() { SetABPath(false); QABMgr.InitializeSync(); }
/// <summary> /// 强制卸载所有assetbundle /// </summary> static public void ForceUnloadAllAssetBundle() { QABMgr.ForceUnloadAll(); }
/// <summary> /// Gets the AB download progress. /// </summary> /// <returns>The AB download progress.</returns> /// <param name="assetBundleName">Asset bundle name.</param> public float GetABDownloadProgress(string assetBundleName) { return(QABMgr.GetDownLoadProgress(assetBundleName)); }
/// <summary> /// 同步加载AssetBundle /// </summary> /// <param name="assetBundleName">Asset bundle name.</param> public void LoadAB(string bundleName) { QABMgr.LoadABSync(bundleName, false); }