Guides

VRTK_AxisScaleGrabAction

extends VRTK_BaseGrabAction

Overview

Scales the grabbed Interactable Object along the given axes based on the position of the secondary grabbing Interact Grab.

Script Usage:

  • Place the VRTK_AxisScaleGrabAction script on either:
    • The GameObject of the Interactable Object to detect interactions on.
    • Any other scene GameObject and then link that GameObject to the Interactable Objects Secondary Grab Action Script parameter to denote use of the secondary grab action.

Inspector Parameters

  • Ungrab Distance: The distance the secondary grabbing object must move away from the original grab position before the secondary grabbing object auto ungrabs the Interactable Object.
  • Lock Axis: Locks the specified checked axes so they won't be scaled
  • Uniform Scaling: If checked all the axes will be scaled together (unless locked)

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 grabbing object.
    • VRTK_InteractGrab currentPrimaryGrabbingObject - The Interact Grab script for the object that is associated with the primary grabbing object.
    • VRTK_InteractGrab currentSecondaryGrabbingObject - The Interact Grab script for the object that is associated with the secondary grabbing object.
    • Transform primaryGrabPoint - The point on the Interactable Object where the primary Interact Grab initially grabbed the Interactable Object.
    • Transform secondaryGrabPoint - The point on the Interactable Object where the secondary Interact Grab initially grabbed the Interactable Object.
  • Returns
    • none

The Initalise method is used to set up the state of the secondary action when the Interactable Object is initially grabbed by a secondary Interact Grab.

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 Interact Grab.

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 Interact Grab and performs the scaling action.

Example

VRTK/Examples/043_Controller_SecondaryControllerActions demonstrates the ability to grab an object with one controller and scale it by grabbing and pulling with the second controller.