示例#1
0
        /// <summary>
        /// 获取AssetBundle
        /// </summary>
        /// <param name="assetBundleName"></param>
        /// <param name="action"></param>
        public void GetLoadedBundle(string assetBundleName, Action <AssetBundle> action)
        {
            string      error = string.Empty;
            AssetBundle ab    = BundleManager.GetLoadedBundle(assetBundleName, out error);

            if (ab == null)
            {
                Log.Info(error);
                Runtime.CoroutineHelper.Instance.StartCoroutine(BundleManager.StartDownloadBundle(assetBundleName, action));
            }
            else
            {
                action.Invoke(ab);
            }
        }
        /// <summary>
        /// 利用协成开始下载AssetBundle
        /// </summary>
        /// <returns></returns>
        public static IEnumerator StartDownloadBundle(string bundleName, Action <AssetBundle> back)
        {
            while (m_IsMultiDownloading)
            {
                yield return(null);
            }

            AddMultiDownloadBundleQueue(bundleName);
            IEnumerator e = StartMultiDownloadBundle();

            while (e.MoveNext())
            {
                yield return(null);
            }

            string      error = string.Empty;
            AssetBundle ab    = BundleManager.GetLoadedBundle(bundleName, out error);

            if (ab == null)
            {
                Log.Info(error);
            }
            back.Invoke(ab);
        }