Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
        /// <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));
            }
        }
Ejemplo n.º 3
0
 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() + "/");
         }
     }
 }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
 /// <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)));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 初始化加载manifest的同步方式
 /// </summary>
 public void Init()
 {
     SetABPath(false);
     QABMgr.InitializeSync();
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 强制卸载所有assetbundle
 /// </summary>
 static public void ForceUnloadAllAssetBundle()
 {
     QABMgr.ForceUnloadAll();
 }
Ejemplo n.º 8
0
 /// <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));
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 同步加载AssetBundle
 /// </summary>
 /// <param name="assetBundleName">Asset bundle name.</param>
 public void LoadAB(string bundleName)
 {
     QABMgr.LoadABSync(bundleName, false);
 }