Represents a request for On Demand Resources (ODR). It's an AsyncOperation and can be yielded in a coroutine.
NOTE: only available on iOS.
Creating an OnDemandResourcesRequest is equivalent to calling NSBundleResourceRequest.beginAccessingResourcesWithCompletionHandler. The request will keep the on demand resource alive until either Dispose() is called or the request object is collected by a garbage collector, which is the equivalent of calling NSBundleResourceRequest.endAccessingResources class.
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 | Returns an error after operation is complete. |
loadingPriority | Sets the priority for request. |
Dispose | Release all resources kept alive by On Demand Resources (ODR) request. |
GetResourcePath | Gets file system's path to the resource available in On Demand Resources (ODR) request. |
allowSceneActivation | Allow scenes to be activated as soon as it is ready. |
isDone | Has the operation finished? (Read Only) |
priority | Priority lets you tweak in which order async operation calls will be performed. |
progress | What's the operation's progress. (Read Only) |