{"_id":"594949e82be16d0026ec053e","category":{"_id":"594949e62be16d0026ec04d6","version":"594949e52be16d0026ec04cd","project":"571fa55ca0acd42000af9545","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2017-01-01T16:50:06.279Z","from_sync":false,"order":8,"slug":"grab-attach-mechanics","title":"Grab Attach Mechanics"},"project":"571fa55ca0acd42000af9545","user":"571fa519db52d01700f5cf3d","parentDoc":null,"version":{"_id":"594949e52be16d0026ec04cd","project":"571fa55ca0acd42000af9545","__v":2,"createdAt":"2017-06-20T16:14:29.816Z","releaseDate":"2017-06-20T16:14:29.816Z","categories":["594949e62be16d0026ec04ce","594949e62be16d0026ec04cf","594949e62be16d0026ec04d0","594949e62be16d0026ec04d1","594949e62be16d0026ec04d2","594949e62be16d0026ec04d3","594949e62be16d0026ec04d4","594949e62be16d0026ec04d5","594949e62be16d0026ec04d6","594949e62be16d0026ec04d7","594949e62be16d0026ec04d8","594949e62be16d0026ec04d9","594949e62be16d0026ec04da","594949e62be16d0026ec04db","594949e62be16d0026ec04dc","594949e62be16d0026ec04dd","594949e62be16d0026ec04de","594949e62be16d0026ec04df","594949e62be16d0026ec04e0","594949e62be16d0026ec04e1","59497219f4a8980024dd0631"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Kunekune","version_clean":"3.2.0","version":"3.2.0"},"__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-01-01T16:51:12.056Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"> extends [VRTK_BaseGrabAttach](doc:vrtk_basegrabattach)\n\n## Overview\n\nThe Base Joint Grab Attach script is an abstract class that all joint grab attach types inherit.\n\nAs this is an abstract class, it cannot be applied directly to a game object and performs no logic.\n\n## Inspector Parameters\n\n * **Destroy Immediately On Throw:** Determines whether the joint should be destroyed immediately on release or whether to wait till the end of the frame before being destroyed.\n\n## Class Methods\n\n### ValidGrab/1\n\n  > `public override bool ValidGrab(Rigidbody checkAttachPoint)`\n\n  * Parameters\n   * `Rigidbody checkAttachPoint` -\n  * Returns\n   * `bool` - Returns true if there is no current grab happening, or the grab is initiated by another grabbing object.\n\nThe ValidGrab method determines if the grab attempt is valid.\n\n### StartGrab/3\n\n  > `public override bool StartGrab(GameObject grabbingObject, GameObject givenGrabbedObject, Rigidbody givenControllerAttachPoint)`\n\n  * Parameters\n   * `GameObject grabbingObject` - The object that is doing the grabbing.\n   * `GameObject givenGrabbedObject` - The object that is being grabbed.\n   * `Rigidbody givenControllerAttachPoint` - The point on the grabbing object that the grabbed object should be attached to after grab occurs.\n  * Returns\n   * `bool` - Is true if the grab is successful, false if the grab is unsuccessful.\n\nThe StartGrab method sets up the grab attach mechanic as soon as an object is grabbed. It is also responsible for creating the joint on the grabbed object.\n\n### StopGrab/1\n\n  > `public override void StopGrab(bool applyGrabbingObjectVelocity)`\n\n  * Parameters\n   * `bool applyGrabbingObjectVelocity` - If true will apply the current velocity of the grabbing object to the grabbed object on release.\n  * Returns\n   * _none_\n\nThe StopGrab method ends the grab of the current object and cleans up the state. It is also responsible for removing the joint from the grabbed object.","excerpt":"","slug":"vrtk_basejointgrabattach","type":"basic","title":"VRTK_BaseJointGrabAttach"}

VRTK_BaseJointGrabAttach


> extends [VRTK_BaseGrabAttach](doc:vrtk_basegrabattach) ## Overview The Base Joint Grab Attach script is an abstract class that all joint grab attach types inherit. As this is an abstract class, it cannot be applied directly to a game object and performs no logic. ## Inspector Parameters * **Destroy Immediately On Throw:** Determines whether the joint should be destroyed immediately on release or whether to wait till the end of the frame before being destroyed. ## Class Methods ### ValidGrab/1 > `public override bool ValidGrab(Rigidbody checkAttachPoint)` * Parameters * `Rigidbody checkAttachPoint` - * Returns * `bool` - Returns true if there is no current grab happening, or the grab is initiated by another grabbing object. The ValidGrab method determines if the grab attempt is valid. ### StartGrab/3 > `public override bool StartGrab(GameObject grabbingObject, GameObject givenGrabbedObject, Rigidbody givenControllerAttachPoint)` * Parameters * `GameObject grabbingObject` - The object that is doing the grabbing. * `GameObject givenGrabbedObject` - The object that is being grabbed. * `Rigidbody givenControllerAttachPoint` - The point on the grabbing object that the grabbed object should be attached to after grab occurs. * Returns * `bool` - Is true if the grab is successful, false if the grab is unsuccessful. The StartGrab method sets up the grab attach mechanic as soon as an object is grabbed. It is also responsible for creating the joint on the grabbed object. ### StopGrab/1 > `public override void StopGrab(bool applyGrabbingObjectVelocity)` * Parameters * `bool applyGrabbingObjectVelocity` - If true will apply the current velocity of the grabbing object to the grabbed object on release. * Returns * _none_ The StopGrab method ends the grab of the current object and cleans up the state. It is also responsible for removing the joint from the grabbed object.