Class XRReferenceImageLibrary
A reference image library is a collection of images to search for in the physical environment when image tracking is enabled.
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
[CreateAssetMenu(fileName = "ReferenceImageLibrary", menuName = "XR/Reference Image Library", order = 1001)]
public class XRReferenceImageLibrary : ScriptableObject, IReferenceImageLibrary, ISerializationCallbackReceiver, IEnumerable<XRReferenceImage>, IEnumerable
Remarks
Image libraries are immutable at runtime. To create and manipulate an image library via Editor scripts, see the extension methods in XRReferenceImageLibraryExtensions. If you need to mutate the library at runtime, see MutableRuntimeReferenceImageLibrary.
Properties
count
The number of images in the library.
Declaration
public int count { get; }
Property Value
Type | Description |
---|---|
Int32 |
Implements
dataStore
(Read Only) Binary data associated with a string key.
Declaration
public IReadOnlyDictionary<string, byte[]> dataStore { get; }
Property Value
Type | Description |
---|---|
IReadOnlyDictionary<String, Byte[]> |
Remarks
This is used by providers to associate provider-specific data with the library. During Player Build (in an IPreprocessBuildWithReport.OnPreprocessBuild callback), the data store is first cleared. Each enabled provider then has an opportunity to add one or more entries for itself.
Providers can use this to store a serialized version of the image library specific to that provider. Set data with SetDataForKey(XRReferenceImageLibrary, String, Byte[]).
guid
A GUID
associated with this reference library.
The GUID is used to uniquely identify this library at runtime.
Declaration
public Guid guid { get; }
Property Value
Type | Description |
---|---|
Guid |
Item[Int32]
Get an image by index.
Declaration
public XRReferenceImage this[int index] { get; }
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | The index of the image in the library. Must be between 0 and count - 1. |
Property Value
Type | Description |
---|---|
XRReferenceImage | The XRReferenceImage at |
Implements
Exceptions
Type | Condition |
---|---|
IndexOutOfRangeException | Thrown if |
Methods
GetEnumerator()
Gets an enumerator which can be used to iterate over the reference images in this library.
Declaration
public List<XRReferenceImage>.Enumerator GetEnumerator()
Returns
Type | Description |
---|---|
List.Enumerator<> | Returns an enumerator which can be used to iterate over the reference images in the library. |
Examples
This examples iterates over the reference images contained in the library.
XRReferenceImageLibrary imageLibrary = ...
foreach (var referenceImage in imageLibrary)
{
Debug.LogFormat("Image guid: {0}", referenceImage.guid);
}
indexOf(XRReferenceImage)
Get the index of referenceImage
in the image library.
Declaration
public int indexOf(XRReferenceImage referenceImage)
Parameters
Type | Name | Description |
---|---|---|
XRReferenceImage | referenceImage | The XRReferenceImage to find. |
Returns
Type | Description |
---|---|
Int32 | The zero-based index of the |
Explicit Interface Implementations
IEnumerable<XRReferenceImage>.GetEnumerator()
Gets an enumerator which can be used to iterate over the reference images in this library.
Declaration
IEnumerator<XRReferenceImage> IEnumerable<XRReferenceImage>.GetEnumerator()
Returns
Type | Description |
---|---|
IEnumerator<XRReferenceImage> | Returns an object which can be used to iterate over the reference images in this library. |
Implements
IEnumerable.GetEnumerator()
Gets an enumerator which can be used to iterate over the reference images in this library.
Declaration
IEnumerator IEnumerable.GetEnumerator()
Returns
Type | Description |
---|---|
IEnumerator | Returns an object which can be used to iterate over the reference images in this library. |
Implements
ISerializationCallbackReceiver.OnAfterDeserialize()
Invoked after serialization.
Declaration
void ISerializationCallbackReceiver.OnAfterDeserialize()
Implements
ISerializationCallbackReceiver.OnBeforeSerialize()
Invoked before serialization.
Declaration
void ISerializationCallbackReceiver.OnBeforeSerialize()