Ejemplo n.º 1
0
    protected IEnumerator LoadAssetBundleAsync(string assetBundleName,
                                               Action <float> progressNotifier, Action <string> onFailed, Action <LoadedAssetBundle> onSuccess)
    {
        // Load asset from assetBundle.
        AssetBundleLoadBundleOperation request = AssetBundleManager.LoadBundleAsync(assetBundleName);

        if (request == null)
        {
            yield break;
        }
        _progressNotifier = progressNotifier;
        AssetBundleManager.DownloadingErrors.ObserveAdd().Subscribe(errMsg =>
        {
            Debug.Log(errMsg.Value);
            if (onFailed != null)
            {
                onFailed(errMsg.Value);
            }
        });
        _isDownloading = true;
        yield return(StartCoroutine(request));

        _isDownloading = false;

        var bundle = request.GetLoadedBundle();

        if (bundle == null)
        {
            onFailed("获取Bundle失败");
        }
        onSuccess(bundle);
    }
Ejemplo n.º 2
0
    private static void LoadResourceInternalImp(string assetName, string bundleName, Hoba.Action <UnityObject> onLoadFinish, bool needInstantiate)
    {
        LoadAssetBundle(bundleName);

        AssetBundleLoadOperation operation = null;

        if (string.IsNullOrEmpty(assetName))
        {
            operation = new AssetBundleLoadBundleOperation(bundleName, onLoadFinish);
        }
        else
        {
            operation = new AssetBundleLoadAssetOperation(assetName, bundleName, onLoadFinish, needInstantiate);
        }

        _InProgressOperations.Add(operation);
    }