VRTK_ControlDirectionGrabAction
extends VRTK_BaseGrabAction
Overview
The Control Direction Grab Action provides a mechanism to control the facing direction of the object when they are grabbed with a secondary controller.
For an object to correctly be rotated it must be created with the front of the object pointing down the z-axis (forward) and the upwards of the object pointing up the y-axis (up).
It's not possible to control the direction of an interactable object with a Fixed_Joint
as the joint fixes the rotation of the object.
Inspector Parameters
- Ungrab Distance: The distance the secondary controller must move away from the original grab position before the secondary controller auto ungrabs the object.
- Release Snap Speed: The speed in which the object will snap back to it's original rotation when the secondary controller stops grabbing it.
0
for instant snap,infinity
for no snap back. - Lock Z Rotation: Prevent the secondary controller rotating the grabbed object through it's z-axis.
Class Methods
Initialise/5
public override void Initialise(VRTK_InteractableObject currentGrabbdObject, VRTK_InteractGrab currentPrimaryGrabbingObject, VRTK_InteractGrab currentSecondaryGrabbingObject, Transform primaryGrabPoint, Transform secondaryGrabPoint)
- Parameters
VRTK_InteractableObject currentGrabbdObject
- The Interactable Object script for the object currently being grabbed by the primary controller.VRTK_InteractGrab currentPrimaryGrabbingObject
- The Interact Grab script for the object that is associated with the primary controller.VRTK_InteractGrab currentSecondaryGrabbingObject
- The Interact Grab script for the object that is associated with the secondary controller.Transform primaryGrabPoint
- The point on the object where the primary controller initially grabbed the object.Transform secondaryGrabPoint
- The point on the object where the secondary controller initially grabbed the object.- Returns
- none
The Initalise method is used to set up the state of the secondary action when the object is initially grabbed by a secondary controller.
ResetAction/0
public override void ResetAction()
- Parameters
- none
- Returns
- none
The ResetAction method is used to reset the secondary action when the object is no longer grabbed by a secondary controller.
OnDropAction/0
public override void OnDropAction()
- Parameters
- none
- Returns
- none
The OnDropAction method is executed when the current grabbed object is dropped and can be used up to clean up any secondary grab actions.
ProcessUpdate/0
public override void ProcessUpdate()
- Parameters
- none
- Returns
- none
The ProcessUpdate method runs in every Update on the Interactable Object whilst it is being grabbed by a secondary controller.
ProcessFixedUpdate/0
public override void ProcessFixedUpdate()
- Parameters
- none
- Returns
- none
The ProcessFixedUpdate method runs in every FixedUpdate on the Interactable Object whilst it is being grabbed by a secondary controller and influences the rotation of the object.
Example
VRTK/Examples/043_Controller_SecondaryControllerActions
demonstrates the ability to grab an object with one controller and control their direction with the second controller.
Updated less than a minute ago