Class MutableRuntimeReferenceImageLibraryExtensions
Extension methods for MutableRuntimeReferenceImageLibrary.
Inherited Members
Namespace: UnityEngine.XR.ARFoundation
Assembly: Unity.XR.ARFoundation.dll
Syntax
public static class MutableRuntimeReferenceImageLibraryExtensions
Methods
ScheduleAddImageJob(MutableRuntimeReferenceImageLibrary, Texture2D, string, float?, JobHandle)
Asynchronously adds texture
to library
.
Declaration
[Obsolete("Use ScheduleAddImageWithValidationJob instead. (2020-10-20)")]
public static JobHandle ScheduleAddImageJob(this MutableRuntimeReferenceImageLibrary library, Texture2D texture, string name, float? widthInMeters, JobHandle inputDeps = default)
Parameters
Type | Name | Description |
---|---|---|
MutableRuntimeReferenceImageLibrary | library | The MutableRuntimeReferenceImageLibrary being extended. |
Texture2D | texture | The Texture2D to use as image target. |
string | name | The name of the image. |
float? | widthInMeters | The physical width of the image, in meters. |
JobHandle | inputDeps | Input job dependencies (optional). |
Returns
Type | Description |
---|---|
JobHandle | A JobHandle which can be used to chain together multiple tasks or to query for completion. Can be safely discarded. |
Remarks
This method is deprecated. Use ScheduleAddImageWithValidationJob(MutableRuntimeReferenceImageLibrary, Texture2D, string, float?, JobHandle) instead.
Image addition can take some time (several frames) due to extra processing that must occur to insert the image into the library. This is done using the [Unity Job System] (https://docs.unity3d.com/Manual/JobSystem.html). The returned JobHandle can be used to chain together multiple tasks or to query for completion, but you can safely discarded if you do not need it.
This job, like all Unity jobs, can have dependencies (using the inputDeps
). If you are
adding multiple images to the library, it is not necessary to pass a previous
ScheduleAddImageJob(MutableRuntimeReferenceImageLibrary, Texture2D, string, float?, JobHandle) JobHandle
as the input dependency to the next
ScheduleAddImageJob(MutableRuntimeReferenceImageLibrary, Texture2D, string, float?, JobHandle); they can be processed concurrently.
The bytes of the texture
are copied, so you can safely destroy the texture
after this method returns.
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
ArgumentNullException | Thrown if |
InvalidOperationException | Thrown if state hasn't reached the ready state. |
InvalidOperationException | Thrown if |
ScheduleAddImageWithValidationJob(MutableRuntimeReferenceImageLibrary, Texture2D, string, float?, JobHandle)
Asynchronously adds texture
to library
.
Declaration
public static AddReferenceImageJobState ScheduleAddImageWithValidationJob(this MutableRuntimeReferenceImageLibrary library, Texture2D texture, string name, float? widthInMeters, JobHandle inputDeps = default)
Parameters
Type | Name | Description |
---|---|---|
MutableRuntimeReferenceImageLibrary | library | The MutableRuntimeReferenceImageLibrary being extended. |
Texture2D | texture | The Texture2D to add to |
string | name | The name of the image. |
float? | widthInMeters | The physical width of the image, in meters. |
JobHandle | inputDeps | Input job dependencies (optional). |
Returns
Type | Description |
---|---|
AddReferenceImageJobState | Returns an AddReferenceImageJobState that you can use to query for job completion and whether the image was successfully added. If image validity can be determined, invalid images will be not be added. |
Remarks
The bytes of the texture
are copied, so the texture may be safely
destroyed after this method returns.
Tip
Do not call this method on your app's first frame. ARSession.state should
be SessionInitializing or SessionTracking before you schedule an add image job. You can implement a
MonoBehaviour
's Start
method as a coroutine and yield
until the AR Session state is SessionTracking
.
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
ArgumentNullException | Thrown if |
InvalidOperationException | Thrown if state hasn't reached the ready state. |
InvalidOperationException | Thrown if |