Class XRBaseInteractable
Abstract base class from which all interactable behaviours derive. This class hooks into the interaction system (via XRInteractionManager) and provides base virtual methods for handling hover and selection.
Namespace: UnityEngine.XR.Interaction.Toolkit
Syntax
public abstract class XRBaseInteractable : MonoBehaviour
Properties
colliders
Gets colliders to use for interaction with this interactable.
Declaration
public List<Collider> colliders { get; }
Property Value
Type | Description |
---|---|
List<Collider> |
customReticle
Gets or sets the reticle that will appear at the end of the line when it is valid.
Declaration
public GameObject customReticle { get; set; }
Property Value
Type | Description |
---|---|
GameObject |
hoveringInteractors
Gets the list of interactors that are hovering on this interactable;
Declaration
public List<XRBaseInteractor> hoveringInteractors { get; }
Property Value
Type | Description |
---|---|
List<XRBaseInteractor> |
interactionLayerMask
Gets or sets the layer mask to use to filter interactors that can interact with this interactable.
Declaration
public LayerMask interactionLayerMask { get; set; }
Property Value
Type | Description |
---|---|
LayerMask |
interactionManager
Gets or sets Interaction Manager.
Declaration
public XRInteractionManager interactionManager { get; set; }
Property Value
Type | Description |
---|---|
XRInteractionManager |
isHovered
Gets whether this interactable is currently being hovered.
Declaration
public bool isHovered { get; }
Property Value
Type | Description |
---|---|
Boolean |
isSelected
Gets whether this interactable is currently being selected.
Declaration
public bool isSelected { get; }
Property Value
Type | Description |
---|---|
Boolean |
onActivate
Gets or sets the event that is called when an Interactor activates this Interactable.
Declaration
public XRInteractableEvent onActivate { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
onDeactivate
Gets or sets the event that is called when an Interactor deactivates this Interactable.
Declaration
public XRInteractableEvent onDeactivate { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
onFirstHoverEnter
Gets or sets the event that is called only when the first interactor begins hovering over this interactable.
Declaration
public XRInteractableEvent onFirstHoverEnter { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
onHoverEnter
Gets or sets the event that is called every time when an interactor begins hovering over this interactable.
Declaration
public XRInteractableEvent onHoverEnter { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
onHoverExit
Gets or sets the event that is called every time when an interactor stops hovering over this interactable.
Declaration
public XRInteractableEvent onHoverExit { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
onLastHoverExit
Gets or sets the event that is called only when the last interactor stops hovering over this interactable.
Declaration
public XRInteractableEvent onLastHoverExit { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
onSelectEnter
Gets or sets the event that is called when an interactor begins selecting this interactable.
Declaration
public XRInteractableEvent onSelectEnter { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
onSelectExit
Gets or sets the event that is called when an interactor stops selecting this interactable.
Declaration
public XRInteractableEvent onSelectExit { get; set; }
Property Value
Type | Description |
---|---|
XRInteractableEvent |
Methods
AttachCustomReticle(XRBaseInteractor)
Declaration
public virtual void AttachCustomReticle(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor |
Awake()
Declaration
protected virtual void Awake()
GetDistanceSqrToInteractor(XRBaseInteractor)
Calculates distance squared to interactor (based on colliders).
Declaration
public float GetDistanceSqrToInteractor(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor to calculate distance against. |
Returns
Type | Description |
---|---|
Single | Minimum distance between the interactor and this interactable's colliders. |
IsHoverableBy(XRBaseInteractor)
Determines if this interactable can be hovered by a given interactor.
Declaration
public virtual bool IsHoverableBy(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor to check for a valid hover state with. |
Returns
Type | Description |
---|---|
Boolean | True if hovering is valid this frame, False if not. |
IsSelectableBy(XRBaseInteractor)
Determines if this interactable can be selected by a given interactor.
Declaration
public virtual bool IsSelectableBy(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor to check for a valid selection with. |
Returns
Type | Description |
---|---|
Boolean | True if selection is valid this frame, False if not. |
OnActivate(XRBaseInteractor)
This method is called by the interaction manager when the interactor sends an activation event down to an interactable.
Declaration
protected virtual void OnActivate(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor that is sending the activation event. |
OnDeactivate(XRBaseInteractor)
Declaration
protected virtual void OnDeactivate(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor |
OnHoverEnter(XRBaseInteractor)
This method is called by the interaction manager when the interactor first initiates hovering over an interactable.
Declaration
protected virtual void OnHoverEnter(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor that is initiating the hover. |
OnHoverExit(XRBaseInteractor)
This method is called by the interaction manager when the interactor ends hovering over an interactable.
Declaration
protected virtual void OnHoverExit(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor that is ending the hover. |
OnSelectEnter(XRBaseInteractor)
This method is called by the interaction manager when the interactor first initiates selection of an interactable.
Declaration
protected virtual void OnSelectEnter(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor that is initiating the selection. |
OnSelectExit(XRBaseInteractor)
This method is called by the interaction manager when the interactor ends selection of an interactable.
Declaration
protected virtual void OnSelectExit(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor | Interactor that is ending the selection. |
ProcessInteractable(XRInteractionUpdateOrder.UpdatePhase)
This method is called by the interaction manager to update the interactable. Please see the interaction manager documentation for more details on update order
Declaration
public virtual void ProcessInteractable(XRInteractionUpdateOrder.UpdatePhase updatePhase)
Parameters
Type | Name | Description |
---|---|---|
XRInteractionUpdateOrder.UpdatePhase | updatePhase |
RemoveCustomReticle(XRBaseInteractor)
Declaration
public virtual void RemoveCustomReticle(XRBaseInteractor interactor)
Parameters
Type | Name | Description |
---|---|---|
XRBaseInteractor | interactor |
Reset()
Declaration
protected virtual void Reset()