{"_id":"5b1f8576c2505d0003125485","category":{"_id":"5b1f8576c2505d000312542d","version":"5b1f8576c2505d00031254db","project":"571fa55ca0acd42000af9545","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2017-01-01T16:55:17.729Z","from_sync":false,"order":10,"slug":"secondary-controller-grab-actions","title":"Secondary Controller Grab Actions"},"parentDoc":null,"project":"571fa55ca0acd42000af9545","user":"571fa519db52d01700f5cf3d","version":{"_id":"5b1f8576c2505d00031254db","project":"571fa55ca0acd42000af9545","__v":4,"forked_from":"594949e52be16d0026ec04cd","createdAt":"2017-06-20T16:14:29.816Z","releaseDate":"2017-06-20T16:14:29.816Z","categories":["5b1f8576c2505d0003125424","5b1f8576c2505d0003125425","5b1f8576c2505d0003125426","5b1f8576c2505d0003125427","5b1f8576c2505d0003125428","5b1f8576c2505d0003125429","5b1f8576c2505d000312542a","5b1f8576c2505d000312542b","5b1f8576c2505d000312542c","5b1f8576c2505d000312542d","5b1f8576c2505d000312542e","5b1f8576c2505d000312542f","5b1f8576c2505d0003125430","5b1f8576c2505d0003125431","5b1f8576c2505d0003125432","5b1f8576c2505d0003125433","5b1f8576c2505d0003125434","5b1f8576c2505d0003125435","5b1f8576c2505d0003125436","5b1f8576c2505d0003125437","5b1f8576c2505d0003125438","5b1f8aab9c683000032979e7","5b1f8b2f3073470003ffa5da","5b1f8bd9fd653400031d94f4","5b1f900bd4c5f000036b57bd"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Mangalica","version_clean":"3.3.0","version":"3.3.0"},"githubsync":"","__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-01-01T16:57:01.226Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"## Overview\n\nProvides a base that all secondary controller grab attach can inherit from.\n\n**Script Usage:**\n  > This is an abstract class that is to be inherited to a concrete class that provides secondary controller grab action functionality, therefore this script should not be directly used.\n\n## Class Methods\n\n### Initialise/5\n\n  > `public virtual 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 grabbing object.\n   * `VRTK_InteractGrab currentPrimaryGrabbingObject` - The Interact Grab script for the object that is associated with the primary grabbing object.\n   * `VRTK_InteractGrab currentSecondaryGrabbingObject` - The Interact Grab script for the object that is associated with the secondary grabbing object.\n   * `Transform primaryGrabPoint` - The point on the Interactable Object where the primary Interact Grab initially grabbed the Interactable Object.\n   * `Transform secondaryGrabPoint` - The point on the Interactable Object where the secondary Interact Grab initially grabbed the Interactable Object.\n * Returns\n   * _none_\n\nThe 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.\n\n### ResetAction/0\n\n  > `public virtual void ResetAction()`\n\n * Parameters\n   * _none_\n * Returns\n   * _none_\n\nThe ResetAction method is used to reset the secondary action when the Interactable Object is no longer grabbed by a secondary Interact Grab.\n\n### IsActionable/0\n\n  > `public virtual bool IsActionable()`\n\n * Parameters\n   * _none_\n * Returns\n   * `bool` - Returns `true` if the secondary grab action does perform an action on secondary grab.\n\nThe IsActionable method is used to determine if the secondary grab action performs an action on grab.\n\n### IsSwappable/0\n\n  > `public virtual bool IsSwappable()`\n\n * Parameters\n   * _none_\n * Returns\n   * `bool` - Returns `true` if the grab action allows swapping to another grabbing object.\n\nThe IsSwappable method is used to determine if the secondary grab action allows to swab the grab state to another grabbing Interactable Object.\n\n### ProcessUpdate/0\n\n  > `public virtual 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 Interact Grab.\n\n### ProcessFixedUpdate/0\n\n  > `public virtual 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 Interact Grab.\n\n### OnDropAction/0\n\n  > `public virtual void OnDropAction()`\n\n * Parameters\n   * _none_\n * Returns\n   * _none_\n\nThe OnDropAction method is executed when the current grabbed Interactable Object is dropped and can be used up to clean up any secondary grab actions.","excerpt":"","slug":"vrtk_basegrabaction","type":"basic","title":"VRTK_BaseGrabAction"}

VRTK_BaseGrabAction


## Overview Provides a base that all secondary controller grab attach can inherit from. **Script Usage:** > This is an abstract class that is to be inherited to a concrete class that provides secondary controller grab action functionality, therefore this script should not be directly used. ## Class Methods ### Initialise/5 > `public virtual 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. ### ResetAction/0 > `public virtual void ResetAction()` * Parameters * _none_ * Returns * _none_ The ResetAction method is used to reset the secondary action when the Interactable Object is no longer grabbed by a secondary Interact Grab. ### IsActionable/0 > `public virtual bool IsActionable()` * Parameters * _none_ * Returns * `bool` - Returns `true` if the secondary grab action does perform an action on secondary grab. The IsActionable method is used to determine if the secondary grab action performs an action on grab. ### IsSwappable/0 > `public virtual bool IsSwappable()` * Parameters * _none_ * Returns * `bool` - Returns `true` if the grab action allows swapping to another grabbing object. The IsSwappable method is used to determine if the secondary grab action allows to swab the grab state to another grabbing Interactable Object. ### ProcessUpdate/0 > `public virtual 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 virtual 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. ### OnDropAction/0 > `public virtual void OnDropAction()` * Parameters * _none_ * Returns * _none_ The OnDropAction method is executed when the current grabbed Interactable Object is dropped and can be used up to clean up any secondary grab actions.