On Demand Resources (ODR) のリクエストオブジェクト。AsyncOperation なのでコルーチンで使用することができます。
注意: iOS でのみ有効です
OnDemandResourcesRequest を作成することは NSBundleResourceRequest.beginAccessingResourcesWithCompletionHandler を呼び出すのと同じです。NSBundleResourceRequest.endAccessingResources クラスを呼び出すのと同様の Dispose() の呼び出しやリクエストオブジェクトがガーベージコレクターに回収されるまで、ODR リソースはこのリクエストによって機能するよう保たれます。
using UnityEngine; using UnityEngine.iOS; using System; using System.Collections;
public static class Loader { public static IEnumerator LoadAsset(string resourceName) { // Create the request var request = OnDemandResources.PreloadAsync(new string[] { "Asset's ODR tag" });
// Wait until request is completed yield return request;
// Check for errors if (request.error != null) throw new Exception("ODR request failed: " + request.error);
// Get path to the resource and use it var path = request.GetResourcePath(resourceName); Debug.Log(path);
// Call Dispose() when resource is no longer needed. request.Dispose(); } }
error | 操作が完了した後のエラー |
loadingPriority | リクエストの優先度 |
Dispose | Demand Resources (ODR) リクエストで保持していたすべてのリソースを解放します |
GetResourcePath | On Demand Resources (ODR) リクエストで利用可能なリソースへのファイルシステムのパスを取得します |
allowSceneActivation | シーンが準備完了となったタイミングですぐにシーンが有効化されることを許可します。 |
isDone | 動作が終了したか確認します(読み取り専用) |
priority | 非同期で読み込む際の優先順位を設定します。 |
progress | 進捗状況を表示します(読み取り専用) |