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()
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 override sealed void OnDestroyed()
Overrides
OnStart()
Starts the subsystem.
Declaration
protected override sealed void OnStart()
Overrides
OnStop()
Stops the subsystem.
Declaration
protected override sealed 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 |
|