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 .
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) |
completed | Event that is invoked upon operation completion. An event handler that is registered in the same frame as the call that creates it will be invoked next frame, even if the operation is able to complete synchronously. If a handler is registered after the operation has completed and has already invoked the complete event, the handler will be called synchronously. |