Struct XRMarker
Represents a marker detected by the marker subsystem.
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Assembly: Unity.XR.ARSubsystems.dll
Syntax
public struct XRMarker : ITrackable, IEquatable<XRMarker>
Constructors
XRMarker(TrackableId, Pose, TrackingState, IntPtr, Vector2, XRMarkerType, int, XRSpatialBuffer, TrackableId)
Constructs a new XRMarker.
Declaration
public XRMarker(TrackableId trackableId, Pose pose, TrackingState trackingState, IntPtr nativePtr, Vector2 size, XRMarkerType markerType, int markerId, XRSpatialBuffer dataBuffer, TrackableId parentId)
Parameters
Type | Name | Description |
---|---|---|
TrackableId | trackableId | The unique identifier for the marker. |
Pose | pose | The marker's pose in session space. |
TrackingState | trackingState | Tracking status. |
IntPtr | nativePtr | Provider-specific native pointer, or Zero. |
Vector2 | size | The detected marker size. |
XRMarkerType | markerType | Type/classification of marker. |
int | markerId | Integer identifier. |
XRSpatialBuffer | dataBuffer | Optional buffer for marker-specific data encoded data. |
TrackableId | parentId | The TrackableId of the parent of this tracked object. |
Properties
dataBuffer
The marker's data buffer.
Declaration
public readonly XRSpatialBuffer dataBuffer { get; }
Property Value
Type | Description |
---|---|
XRSpatialBuffer |
Remarks
Only valid if markerType is QRCode or MicroQRCode.
To safely access the encoded data, you should first check the bufferType of this buffer.
When the runtime successfully decodes a marker's encoded data, it sets the bufferType
to either
String or Uint8 and assigns a valid
bufferId. If the bufferType
is one of these values, you can then use
TryGetStringData(XRSpatialBuffer) or
TryGetBytesData(XRSpatialBuffer) to retrieve the data.
defaultValue
Gets a default-initialized XRMarker.
Declaration
public static XRMarker defaultValue { get; }
Property Value
Type | Description |
---|---|
XRMarker |
markerId
If markerType is ArUco or AprilTag,
this property gets the integer ID encoded by the marker. Otherwise, 0
.
Declaration
public readonly int markerId { get; }
Property Value
Type | Description |
---|---|
int |
markerType
The type of marker that was detected.
Declaration
public readonly XRMarkerType markerType { get; }
Property Value
Type | Description |
---|---|
XRMarkerType |
nativePtr
A native pointer to additional provider-specific data. May be Zero.
Declaration
public readonly IntPtr nativePtr { get; }
Property Value
Type | Description |
---|---|
IntPtr |
parentId
The TrackableId of the parent of this tracked object.
Declaration
public readonly TrackableId parentId { get; }
Property Value
Type | Description |
---|---|
TrackableId |
pose
The pose of the marker in the session space.
Declaration
public readonly Pose pose { get; }
Property Value
Type | Description |
---|---|
Pose |
Remarks
The Pose
is oriented so that its local positive Y-axis (up) points directly away from the front face of
the marker, perpendicular to its surface.
size
The logical size of the detected marker, in meters.
Declaration
public readonly Vector2 size { get; }
Property Value
Type | Description |
---|---|
Vector2 |
Remarks
This value represents the width and height of the marker. The X component (size.x) represents the width and corresponds to the marker's local X-axis. The Y component (size.y) represents the height and corresponds to the marker's local Z-axis.
trackableId
The unique identifier for this marker.
Declaration
public readonly TrackableId trackableId { get; }
Property Value
Type | Description |
---|---|
TrackableId |
trackingState
The current tracking state of the marker.
Declaration
public readonly TrackingState trackingState { get; }
Property Value
Type | Description |
---|---|
TrackingState |
Methods
Equals(object)
Determines whether the specified object is equal to the current object.
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
object | obj | The object to compare with the current object. |
Returns
Type | Description |
---|---|
bool |
|
Overrides
Equals(XRMarker)
Indicates whether every field in this XRMarker is equal to the corresponding field in
other
.
Declaration
public bool Equals(XRMarker other)
Parameters
Type | Name | Description |
---|---|---|
XRMarker | other | The XRMarker to compare with. |
Returns
Type | Description |
---|---|
bool |
|
GetHashCode()
Serves as the default hash function.
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
int | The hash value of this marker. |
Overrides
Operators
operator ==(XRMarker, XRMarker)
Determines whether two XRMarker instances have exactly the same property values.
Declaration
public static bool operator ==(XRMarker left, XRMarker right)
Parameters
Type | Name | Description |
---|---|---|
XRMarker | left | The first marker to compare. |
XRMarker | right | The second marker to compare. |
Returns
Type | Description |
---|---|
bool |
|
operator !=(XRMarker, XRMarker)
Determines whether two XRMarker instances have different property values.
Declaration
public static bool operator !=(XRMarker left, XRMarker right)
Parameters
Type | Name | Description |
---|---|---|
XRMarker | left | The first marker to compare. |
XRMarker | right | The second marker to compare. |
Returns
Type | Description |
---|---|
bool |
|