Class ARRaycastManager
Manages an XRRaycastSubsystem
, exposing raycast functionality in AR Foundation. Use this component
to raycast against trackables (that is, detected features in the physical environment) when they do not have
a presence in the Physics world.
Inheritance
Implements
Inherited Members
Namespace: UnityEngine .XR.ARFoundation
Assembly: Unity.XR.ARFoundation.dll
Syntax
[DefaultExecutionOrder(-2147483647)]
[DisallowMultipleComponent]
[RequireComponent(typeof(XROrigin))]
public sealed class ARRaycastManager : ARTrackableManager<XRRaycastSubsystem, XRRaycastSubsystemDescriptor, XRRaycastSubsystem.Provider, XRRaycast, ARRaycast>, ITrackablesChanged<ARRaycast>
Properties
gameObjectName
The name of the GameObject
for each instantiated ARRaycast.
Declaration
protected override string gameObjectName { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
raycastPrefab
If not null, this prefab will be instantiated for each ARRaycast.
Declaration
public GameObject raycastPrefab { get; set; }
Property Value
Type | Description |
---|---|
Game |
Methods
AddRaycast(Vector2, float)
Creates an ARRaycast that updates automatically. ARRaycasts will
continue to update until you remove them with Remove
Declaration
public ARRaycast AddRaycast(Vector2 screenPoint, float estimatedDistance)
Parameters
Type | Name | Description |
---|---|---|
Vector2 | screenPoint | A point on the screen, in pixels. |
float | estimatedDistance | The estimated distance to the intersection point. This can be used to determine a potential intersection before the environment has been fully mapped. |
Returns
GetPrefab()
Gets the Prefab that should be instantiated for each ARRaycast. Can be null
.
Declaration
protected override GameObject GetPrefab()
Returns
Type | Description |
---|---|
Game |
The Prefab that should be instantiated for each ARRaycast. |
Overrides
OnAfterSetSessionRelativeData(ARRaycast, XRRaycast)
Invoked just after a ARRaycast has been updated.
Declaration
protected override void OnAfterSetSessionRelativeData(ARRaycast raycast, XRRaycast sessionRelativeData)
Parameters
Type | Name | Description |
---|---|---|
ARRaycast | raycast | The ARRaycast being updated. |
XRRaycast | sessionRelativeData | The new data associated with the raycast. All spatial data is is session-relative space. |
Overrides
OnAfterStart()
Invoked just after the subsystem has been Start
ed. Used to set raycast delegates internally.
Declaration
protected override void OnAfterStart()
Overrides
Raycast(Ray, List<ARRaycastHit>, TrackableType)
Cast a Ray
against trackables, that is, detected features such as planes.
Declaration
public bool Raycast(Ray ray, List<ARRaycastHit> hitResults, TrackableType trackableTypes = (TrackableType)-1)
Parameters
Type | Name | Description |
---|---|---|
Ray | ray | The |
List<ARRaycast |
hitResults | Contents are replaced with the raycast results, if successful. Results are sorted by distance in closest-first order. |
Trackable |
trackableTypes | (Optional) The types of trackables to cast against. |
Returns
Raycast(Vector2, List<ARRaycastHit>, TrackableType)
Cast a ray from a point in screen space against trackables, that is, detected features such as planes.
Declaration
public bool Raycast(Vector2 screenPoint, List<ARRaycastHit> hitResults, TrackableType trackableTypes = (TrackableType)-1)
Parameters
Type | Name | Description |
---|---|---|
Vector2 | screenPoint | The point, in device screen pixels, from which to cast. |
List<ARRaycast |
hitResults | Contents are replaced with the raycast results, if successful. Results are sorted by distance in closest-first order. |
Trackable |
trackableTypes | (Optional) The types of trackables to cast against. |
Returns
RemoveRaycast(ARRaycast)
Removes an existing ARRaycast.
Declaration
public void RemoveRaycast(ARRaycast raycast)
Parameters
Exceptions
Type | Condition |
---|---|
Argument |
Thrown if |