{"__v":0,"_id":"58796782cd4a9c37007c975d","category":{"version":"58796781cd4a9c37007c96ef","project":"571fa55ca0acd42000af9545","_id":"58796781cd4a9c37007c96f7","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2017-01-01T16:55:17.729Z","from_sync":false,"order":9,"slug":"secondary-controller-grab-actions","title":"Secondary Controller Grab Actions"},"parentDoc":null,"project":"571fa55ca0acd42000af9545","user":"571fa519db52d01700f5cf3d","version":{"__v":4,"_id":"58796781cd4a9c37007c96ef","project":"571fa55ca0acd42000af9545","createdAt":"2017-01-13T23:49:21.393Z","releaseDate":"2017-01-13T23:49:21.393Z","categories":["58796781cd4a9c37007c96f0","58796781cd4a9c37007c96f1","58796781cd4a9c37007c96f2","58796781cd4a9c37007c96f3","58796781cd4a9c37007c96f4","58796781cd4a9c37007c96f5","58796781cd4a9c37007c96f6","58796781cd4a9c37007c96f7","58796781cd4a9c37007c96f8","58796781cd4a9c37007c96f9","58796781cd4a9c37007c96fa","58796781cd4a9c37007c96fb","58796781cd4a9c37007c96fc","58796781cd4a9c37007c96fd","58796781cd4a9c37007c96fe","58796781cd4a9c37007c96ff","58796781cd4a9c37007c9700","58b157ca1756cf370022f90d","58b1596f5dae732f00adeca2","58b1605a5dae732f00adecb1"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Mukota","version_clean":"3.1.0","version":"3.1.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-01-01T16:57:29.777Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":3,"body":"> extends [VRTK_BaseGrabAction](doc:vrtk_basegrabaction)\n\n## Overview\n\nThe Axis Scale Grab Action provides a mechanism to scale objects when they are grabbed with a secondary controller.\n\n## Inspector Parameters\n\n * **Ungrab Distance:** The distance the secondary controller must move away from the original grab position before the secondary controller auto ungrabs the object.\n * **Lock X Axis:** If checked the current X Axis of the object won't be scaled\n * **Lock Y Axis:** If checked the current Y Axis of the object won't be scaled\n * **Lock Z Axis:** If checked the current Z Axis of the object won't be scaled\n * **Uniform Scaling:** If checked all the axes will be scaled together (unless locked)\n\n## Class Methods\n\n### Initialise/5\n\n  > `public override void Initialise(VRTK_InteractableObject currentGrabbdObject, VRTK_InteractGrab currentPrimaryGrabbingObject, VRTK_InteractGrab currentSecondaryGrabbingObject, Transform primaryGrabPoint, Transform secondaryGrabPoint)`\n\n  * Parameters\n   * `VRTK_InteractableObject currentGrabbdObject` - The Interactable Object script for the object currently being grabbed by the primary controller.\n   * `VRTK_InteractGrab currentPrimaryGrabbingObject` - The Interact Grab script for the object that is associated with the primary controller.\n   * `VRTK_InteractGrab currentSecondaryGrabbingObject` - The Interact Grab script for the object that is associated with the secondary controller.\n   * `Transform primaryGrabPoint` - The point on the object where the primary controller initially grabbed the object.\n   * `Transform secondaryGrabPoint` - The point on the object where the secondary controller initially grabbed the object.\n  * Returns\n   * _none_\n\nThe Initalise method is used to set up the state of the secondary action when the object is initially grabbed by a secondary controller.\n\n### ProcessUpdate/0\n\n  > `public override void ProcessUpdate()`\n\n  * Parameters\n   * _none_\n  * Returns\n   * _none_\n\nThe ProcessUpdate method runs in every Update on the Interactable Object whilst it is being grabbed by a secondary controller.\n\n### ProcessFixedUpdate/0\n\n  > `public override void ProcessFixedUpdate()`\n\n  * Parameters\n   * _none_\n  * Returns\n   * _none_\n\nThe ProcessFixedUpdate method runs in every FixedUpdate on the Interactable Object whilst it is being grabbed by a secondary controller and performs the scaling action.\n\n## Example\n\n`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.","excerpt":"","slug":"vrtk_axisscalegrabaction","type":"basic","title":"VRTK_AxisScaleGrabAction"}

VRTK_AxisScaleGrabAction


> extends [VRTK_BaseGrabAction](doc:vrtk_basegrabaction) ## Overview The Axis Scale Grab Action provides a mechanism to scale objects when they are grabbed with a secondary controller. ## 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. * **Lock X Axis:** If checked the current X Axis of the object won't be scaled * **Lock Y Axis:** If checked the current Y Axis of the object won't be scaled * **Lock Z Axis:** If checked the current Z Axis of the object 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 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. ### 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 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.