Interactor used for holding interactables via a socket. This component is not designed to be attached to a controller
(thus does not derive from XRBaseControllerInteractor) and instead will always attempt to select an interactable that it is
hovering (though will not perform exclusive selection of that interactable).
Inheritance
XRSocketInteractor
public class XRSocketInteractor : XRBaseInteractor
Properties
Gets or sets Scale at which to render hovered interactable.
Declaration
public float interactableHoverScale { get; set; }
Property Value
Gets whether this interactor is in a state where it could hover (always true for sockets if active).
Declaration
public override bool isHoverActive { get; }
Property Value
Overrides
Gets whether this interactor is in a state where it could select (always true for sockets if active).
Declaration
public override bool isSelectActive { get; }
Property Value
Overrides
Sets the amount of time the socket will refuse hovers after an object is removed.
Declaration
public float recycleDelayTime { get; set; }
Property Value
Gets if this interactor requires exclusive selection of an interactable (always false for sockets). That is, this interactor will only be selected if only exactly one interactor is trying to select it.
Declaration
public override bool requireSelectExclusive { get; }
Property Value
Overrides
Gets the movement type to use when overriding the selected interactable's movement (always Kinematic for sockets).
Declaration
public override XRBaseInteractable.MovementType? selectedInteractableMovementTypeOverride { get; }
Property Value
Overrides
Gets or sets whether this socket should show a mesh at socket's attach point for interactables that it is hovering over.
Declaration
public bool showInteractableHoverMeshes { get; set; }
Property Value
Gets or sets whether socket interaction is enabled.
Declaration
public bool socketActive { get; set; }
Property Value
Methods
Declaration
protected override void Awake()
Overrides
Declaration
public override bool CanHover(XRBaseInteractable interactable)
Parameters
Returns
Overrides
Determines if the interactable is valid for selection this frame.
Declaration
public override bool CanSelect(XRBaseInteractable interactable)
Parameters
Returns
Type |
Description |
Boolean |
true if the interactable can be selected this frame.
|
Overrides
Declaration
protected virtual void DrawHoveredInteractables()
Retrieve the list of interactables that this interactor could possibly interact with this frame.
This list is sorted by priority (in this case distance).
Declaration
public override void GetValidTargets(List<XRBaseInteractable> validTargets)
Parameters
Type |
Name |
Description |
List<XRBaseInteractable> |
validTargets |
Populated List of interactables that are valid for selection or hover.
|
Overrides
Declaration
protected override void OnHoverEnter(XRBaseInteractable interactable)
Parameters
Overrides
Declaration
protected override void OnHoverExit(XRBaseInteractable interactable)
Parameters
Overrides
Declaration
protected override void OnSelectExit(XRBaseInteractable interactable)
Parameters
Overrides
Declaration
protected void OnTriggerEnter(Collider col)
Parameters
Type |
Name |
Description |
Collider |
col |
|
Declaration
protected void OnTriggerExit(Collider col)
Parameters
Type |
Name |
Description |
Collider |
col |
|
Declaration
public override void ProcessInteractor(XRInteractionUpdateOrder.UpdatePhase updatePhase)
Parameters
Overrides
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.