/// <summary> /// 名前で指定したアセットを非同期処理で取得します。 /// </summary> /// <param name="bundleName">取得するアセットが含まれているアセットバンドル名を指定します。</param> /// <param name="assetName">取得するアセット名を指定します。</param> /// <param name="cb">Cb.</param> public static void GetAssetAsync(string bundleName, string assetName, OnAsyncLoadAssetComplete cb) { // 初期化済みかどうかチェック if (!initialized) { return; } // アセットバンドルがロードされているか確認 if (bundleDic == null) { Debug.LogError("It has not been initialized. Please be call Initialize() in advance."); cb(null, false); } else { foreach (string name in GetAllAssetBundleName()) { if (bundleName == name) { // アセットバンドルをロード instance.StartCoroutine(AsyncLoadAsset(bundleName, assetName, cb)); return; } } } cb(null, false); }
// 非同期でアセットを取得する private static IEnumerator AsyncLoadAsset(string bundleName, string assetName, OnAsyncLoadAssetComplete cb) { // アセットバンドルをロード AssetBundle bundle = bundleDic[bundleName]; // 非同期でアセットをロードする AssetBundleRequest request = bundle.LoadAssetAsync(assetName); // 取得するまで待つ yield return(request); // 取得成功 cb(request.asset, true); }
// 非同期でアセットを取得する IEnumerator AsyncLoadAsset(string bundleName, string assetName, OnAsyncLoadAssetComplete cb) { // アセットバンドルをロード AssetBundle bundle = bundleDic [bundleName]; // 非同期でアセットをロードする AssetBundleRequest request = bundle.LoadAssetAsync (assetName); // 取得するまで待つ yield return request; // 取得成功 cb(request.asset, true); }
/// <summary> /// 名前で指定したアセットを非同期処理で取得します。 /// </summary> public void GetAssetAsync(string bundleName, string assetName, OnAsyncLoadAssetComplete cb) { // アセットバンドルがロードされているか確認 if (bundleDic == null) { Debug.LogError ("It has not been initialized. Please be call Initialized() in advance."); cb (null, false); } else { foreach (string name in GetAllAssetBundleName()) { if (bundleName == name) { // アセットバンドルをロード StartCoroutine (AsyncLoadAsset (bundleName, assetName, cb)); return; } } } cb (null, false); }