示例#1
0
        /// <summary>
        /// 此种方式只能加载需要预加载的依赖包
        /// </summary>
        /// <param name="bundleName"></param>
        /// <param name="completeCallback"></param>
        /// <param name="cacheTimeout"></param>
        public void LoadBundle(string bundleName, Action <string> completeCallback = null)
        {
            if (!CheckInited())
            {
                completeCallback?.Invoke("");
                return;
            }

            IncreaseRef(bundleName);

            var bundleLoader = new KTBundleLoader()
            {
                requestBundleName  = bundleName,
                cacheType          = BundleCacheType.Share,
                request            = AssetBundle.LoadFromFileAsync(bundleName),
                callbackForManager = BundleCompleteCallback
            };

            Action <KTBundleLoader> callback = null;

            callback = (loader) =>
            {
                completeCallback?.Invoke(bundleName);
                bundleLoader.UnSubscribe(callback);
            };

            bundleLoader.Subscribe(callback);
            m_bundleLoading.Add(bundleName, bundleLoader);
            bundleLoader.BeginLoad();
        }
示例#2
0
            public void BundleLoadedCallback(KTBundleLoader bundleLoader)
            {
                bundleLoader.UnSubscribe(this);
                dependentBundleNamesLoading.Remove(bundleLoader.requestBundleName);

                if (dependentBundleNamesLoading.Count > 0)
                {
                    return;
                }

                if (loaderType == LoaderType.Asset)
                {
                    assetRequest            = bundleLoader.request.assetBundle.LoadAssetAsync(requestAssetName);
                    assetRequest.completed += AssetLoadedCallback;
                }
                else if (loaderType == LoaderType.Scene)
                {
                    sceneRequest            = SceneManager.LoadSceneAsync(requestAssetName, loadMode);
                    sceneRequest.completed += SceneLoadedCallback;
                }
            }