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