Class XRRaycastSubsystem
Base class for a raycast subsystem.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public abstract class XRRaycastSubsystem : TrackingSubsystem<XRRaycast, XRRaycastSubsystemDescriptor>, ISubsystem
Remarks
This abstract class should be implemented by an XR provider and instantiated using the SubsystemManager
to enumerate the available XRRaycastSubsystemDescriptors.
Constructors
XRRaycastSubsystem()
Constructor. Do not invoke directly; use the SubsystemManager
to enumerate the available XRRaycastSubsystemDescriptors
and call Create
on the desired descriptor.
Declaration
public XRRaycastSubsystem()
Properties
provider
The provider created by the implementation that contains the required raycast functionality.
Declaration
protected XRRaycastSubsystem.Provider provider { get; }
Property Value
Type | Description |
---|---|
XRRaycastSubsystem.Provider |
Methods
CreateProvider()
Should return an instance of XRRaycastSubsystem.Provider.
Declaration
protected abstract XRRaycastSubsystem.Provider CreateProvider()
Returns
Type | Description |
---|---|
XRRaycastSubsystem.Provider | The interface to the implementation-specific provider. |
GetChanges(Allocator)
Get the changes (arrays of added, updated and removed) to the tracked raycasts since the last call to this method.
Declaration
public override TrackableChanges<XRRaycast> GetChanges(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | An allocator to use for the returned container. |
Returns
Type | Description |
---|---|
TrackableChanges<XRRaycast> | The set of changes since the last call to this method. The caller owns the data and is responsible for calling Dispose() on it. |
Overrides
OnDestroyed()
Destroys the subsystem.
Declaration
protected sealed override void OnDestroyed()
Overrides
OnStart()
Starts the subsystem.
Declaration
protected sealed override void OnStart()
Overrides
OnStop()
Stops the subsystem.
Declaration
protected sealed override void OnStop()
Overrides
Raycast(Ray, TrackableType, Allocator)
Casts ray
against trackables specified with trackableTypeMask
.
Declaration
public NativeArray<XRRaycastHit> Raycast(Ray ray, TrackableType trackableTypeMask, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Ray | ray | A ray in session space. |
TrackableType | trackableTypeMask | The types of trackables to test for ray intersections. |
Allocator | allocator | The |
Returns
Type | Description |
---|---|
NativeArray<XRRaycastHit> | A |
Raycast(Vector2, TrackableType, Allocator)
Casts a ray originating from screenPoint
against trackables specified with trackableTypeMask
.
Declaration
public NativeArray<XRRaycastHit> Raycast(Vector2 screenPoint, TrackableType trackableTypeMask, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Vector2 | screenPoint | A point on the screen in normalized screen coordinates (0, 0) - (1, 1) |
TrackableType | trackableTypeMask | The types of trackables to test for ray intersections. |
Allocator | allocator | The |
Returns
Type | Description |
---|---|
NativeArray<XRRaycastHit> | A |
RemoveRaycast(TrackableId)
Removes an existing raycast by its TrackableId.
Declaration
public void RemoveRaycast(TrackableId trackableId)
Parameters
Type | Name | Description |
---|---|---|
TrackableId | trackableId | The unique identifier for the raycast to remove. |
TryAddRaycast(Ray, Single, out XRRaycast)
Attempts to add a new persistent raycast. The raycast will be updated automatically until this subsystem is stopped or destroyed, or the the raycast is removed with RemoveRaycast(TrackableId).
Declaration
public bool TryAddRaycast(Ray ray, float estimatedDistance, out XRRaycast raycast)
Parameters
Type | Name | Description |
---|---|---|
Ray | ray | A ray relative to the session origin defining the raycast. |
Single | estimatedDistance | The estimated distance to the raycast target. For example, an average human height might be used to estimate the distance to the floor. |
XRRaycast | raycast | The newly added raycast. All spatial data is relative to the session origin. |
Returns
Type | Description |
---|---|
Boolean |
|
TryAddRaycast(Vector2, Single, out XRRaycast)
Attempts to add a new persistent raycast. The raycast will be updated automatically until this subsystem is stopped or destroyed, or the the raycast is removed with RemoveRaycast(TrackableId).
Declaration
public bool TryAddRaycast(Vector2 screenPoint, float estimatedDistance, out XRRaycast raycast)
Parameters
Type | Name | Description |
---|---|---|
Vector2 | screenPoint | A point on the screen, in normalized screen coorindates (0, 0)..(1, 1) |
Single | estimatedDistance | The estimated distance to the raycast target. For example, an average human height might be used to estimate the distance to the floor. |
XRRaycast | raycast | The newly added raycast. All spatial data is relative to the session origin. |
Returns
Type | Description |
---|---|
Boolean |
|