Interface IXRInteractable
An interface that represents an Interactable component that controls how a GameObject interacts with an Interactor component. An example is a Grab Interactable which can be picked up and moved by an Interactor.
Namespace: UnityEngine.XR.Interaction.Toolkit
Syntax
public interface IXRInteractable
Remarks
When scripting, you can typically write custom behaviors that derive from XRBaseInteractable or one of its derived classes rather than implementing this interface directly.
Properties
colliders
(Read Only) Colliders to use for interaction with this Interactable.
Declaration
List<Collider> colliders { get; }
Property Value
| Type | Description |
|---|---|
| List<Collider> |
interactionLayers
(Read Only) Allows interaction with Interactors whose Interaction Layer Mask overlaps with any Layer in this Interaction Layer Mask.
Declaration
InteractionLayerMask interactionLayers { get; }
Property Value
| Type | Description |
|---|---|
| InteractionLayerMask |
See Also
transform
(Read Only) The Transform associated with the Interactable.
Declaration
Transform transform { get; }
Property Value
| Type | Description |
|---|---|
| Transform |
Remarks
When this Interactable is a component, this property is the Transform of the GameObject the component is attached to.
Methods
GetAttachTransform(IXRInteractor)
Gets the Transform that serves as the attachment point for a given Interactor.
Declaration
Transform GetAttachTransform(IXRInteractor interactor)
Parameters
| Type | Name | Description |
|---|---|---|
| IXRInteractor | interactor | The specific Interactor as context to get the attachment point for. |
Returns
| Type | Description |
|---|---|
| Transform | Returns the attachment point Transform. |
Remarks
This should typically return the Transform of a child GameObject or the transform itself.
See Also
GetDistanceSqrToInteractor(IXRInteractor)
Calculates squared distance to an Interactor (based on colliders).
Declaration
float GetDistanceSqrToInteractor(IXRInteractor interactor)
Parameters
| Type | Name | Description |
|---|---|---|
| IXRInteractor | interactor | Interactor to calculate distance against. |
Returns
| Type | Description |
|---|---|
| Single | Returns the minimum squared distance between the Interactor and this Interactable's colliders. |
OnRegistered(InteractableRegisteredEventArgs)
The XRInteractionManager calls this method when this Interactable is registered with it.
Declaration
void OnRegistered(InteractableRegisteredEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| InteractableRegisteredEventArgs | args | Event data containing the Interaction Manager that registered this Interactable. |
Remarks
args is only valid during this method call, do not hold a reference to it.
See Also
OnUnregistered(InteractableUnregisteredEventArgs)
The XRInteractionManager calls this method when this Interactable is unregistered from it.
Declaration
void OnUnregistered(InteractableUnregisteredEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| InteractableUnregisteredEventArgs | args | Event data containing the Interaction Manager that unregistered this Interactable. |
Remarks
args is only valid during this method call, do not hold a reference to it.
See Also
ProcessInteractable(XRInteractionUpdateOrder.UpdatePhase)
The XRInteractionManager calls this method to update the Interactable.
Declaration
void ProcessInteractable(XRInteractionUpdateOrder.UpdatePhase updatePhase)
Parameters
| Type | Name | Description |
|---|---|---|
| XRInteractionUpdateOrder.UpdatePhase | updatePhase | The update phase this is called during. |
Remarks
Please see the XRInteractionManager and XRInteractionUpdateOrder.UpdatePhase documentation for more details on update order.
See Also
Events
registered
Calls the methods in its invocation list when this Interactable is registered with an XRInteractionManager.
Declaration
event Action<InteractableRegisteredEventArgs> registered
Event Type
| Type | Description |
|---|---|
| Action<InteractableRegisteredEventArgs> |
Remarks
The InteractableRegisteredEventArgs passed to each listener is only valid while the event is invoked, do not hold a reference to it.
See Also
unregistered
Calls the methods in its invocation list when this Interactable is unregistered from an XRInteractionManager.
Declaration
event Action<InteractableUnregisteredEventArgs> unregistered
Event Type
| Type | Description |
|---|---|
| Action<InteractableUnregisteredEventArgs> |
Remarks
The InteractableUnregisteredEventArgs passed to each listener is only valid while the event is invoked, do not hold a reference to it.