{"_id":"5b1f8576c2505d00031254b7","category":{"_id":"5b1f8576c2505d0003125428","version":"5b1f8576c2505d00031254db","project":"571fa55ca0acd42000af9545","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2017-01-01T16:41:26.797Z","from_sync":false,"order":4,"slug":"locomotion","title":"Locomotion"},"user":"571fa519db52d01700f5cf3d","parentDoc":null,"project":"571fa55ca0acd42000af9545","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:45:22.218Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":10,"body":"## Overview\n\nProvides the ability for the SDK Camera Rig to be moved around based on whether an Interact Grab is interacting with a Climbable Interactable Object to simulate climbing.\n\n**Required Components:**\n * `VRTK_BodyPhysics` - A Body Physics script to deal with the effects of physics and gravity on the play area.\n\n**Optional Components:**\n * `VRTK_BasicTeleport` - A Teleporter script to use when snapping the play area to the nearest floor when releasing from grab.\n * `VRTK_HeadsetCollision` - A Headset Collision script to determine when the headset is colliding with geometry to know when to reset to a valid location.\n * `VRTK_PositionRewind` - A Position Rewind script to utilise when resetting to a valid location upon ungrabbing whilst colliding with geometry.\n\n**Script Usage:**\n * Place the `VRTK_PlayerClimb` script on any active scene GameObject.\n\n**Script Dependencies:**\n * The controller Script Alias GameObject requires the Interact Touch and Interact Grab scripts to allow for touching and grabbing of Interactable Objects.\n * An Interactable Object in the scene that has the Climbable Grab Attach Mechanic.\n\n## Inspector Parameters\n\n * **Use Player Scale:** Will scale movement up and down based on the player transform's scale.\n * **Body Physics:** The Body Physics script to use for dealing with climbing and falling. If this is left blank then the script will need to be applied to the same GameObject.\n * **Teleporter:** The Teleport script to use when snapping to nearest floor on release. If this is left blank then a Teleport script will need to be applied to the same GameObject.\n * **Headset Collision:** The Headset Collision script to use for determining if the user is climbing inside a collidable object. If this is left blank then the script will need to be applied to the same GameObject.\n * **Position Rewind:** The Position Rewind script to use for dealing resetting invalid positions. If this is left blank then the script will need to be applied to the same GameObject.\n\n## Class Events\n\n * `PlayerClimbStarted` - Emitted when player climbing has started.\n * `PlayerClimbEnded` - Emitted when player climbing has ended.\n\n## Unity Events\n\nAdding the `VRTK_PlayerClimb_UnityEvents` component to `VRTK_PlayerClimb` object allows access to `UnityEvents` that will react identically to the Class Events.\n\n * All C# delegate events are mapped to a Unity Event with the `On` prefix. e.g. `MyEvent` -> `OnMyEvent`.\n\n## Event Payload\n\n * `VRTK_ControllerReference controllerReference` - The reference to the controller doing the interaction.\n * `GameObject target` - The GameObject of the interactable object that is being interacted with by the controller.\n\n## Class Methods\n\n### IsClimbing/0\n\n  > `public virtual bool IsClimbing()`\n\n * Parameters\n   * _none_\n * Returns\n   * `bool` - Returns `true` if climbing is currently taking place.\n\nThe IsClimbing method will return if climbing is currently taking place or not.\n\n## Example\n\n`VRTK/Examples/037_CameraRig_ClimbingFalling` shows how to set up a scene with player climbing. There are many different examples showing how the same system can be used in unique ways.","excerpt":"","slug":"vrtk_playerclimb","type":"basic","title":"VRTK_PlayerClimb"}
## Overview Provides the ability for the SDK Camera Rig to be moved around based on whether an Interact Grab is interacting with a Climbable Interactable Object to simulate climbing. **Required Components:** * `VRTK_BodyPhysics` - A Body Physics script to deal with the effects of physics and gravity on the play area. **Optional Components:** * `VRTK_BasicTeleport` - A Teleporter script to use when snapping the play area to the nearest floor when releasing from grab. * `VRTK_HeadsetCollision` - A Headset Collision script to determine when the headset is colliding with geometry to know when to reset to a valid location. * `VRTK_PositionRewind` - A Position Rewind script to utilise when resetting to a valid location upon ungrabbing whilst colliding with geometry. **Script Usage:** * Place the `VRTK_PlayerClimb` script on any active scene GameObject. **Script Dependencies:** * The controller Script Alias GameObject requires the Interact Touch and Interact Grab scripts to allow for touching and grabbing of Interactable Objects. * An Interactable Object in the scene that has the Climbable Grab Attach Mechanic. ## Inspector Parameters * **Use Player Scale:** Will scale movement up and down based on the player transform's scale. * **Body Physics:** The Body Physics script to use for dealing with climbing and falling. If this is left blank then the script will need to be applied to the same GameObject. * **Teleporter:** The Teleport script to use when snapping to nearest floor on release. If this is left blank then a Teleport script will need to be applied to the same GameObject. * **Headset Collision:** The Headset Collision script to use for determining if the user is climbing inside a collidable object. If this is left blank then the script will need to be applied to the same GameObject. * **Position Rewind:** The Position Rewind script to use for dealing resetting invalid positions. If this is left blank then the script will need to be applied to the same GameObject. ## Class Events * `PlayerClimbStarted` - Emitted when player climbing has started. * `PlayerClimbEnded` - Emitted when player climbing has ended. ## Unity Events Adding the `VRTK_PlayerClimb_UnityEvents` component to `VRTK_PlayerClimb` object allows access to `UnityEvents` that will react identically to the Class Events. * All C# delegate events are mapped to a Unity Event with the `On` prefix. e.g. `MyEvent` -> `OnMyEvent`. ## Event Payload * `VRTK_ControllerReference controllerReference` - The reference to the controller doing the interaction. * `GameObject target` - The GameObject of the interactable object that is being interacted with by the controller. ## Class Methods ### IsClimbing/0 > `public virtual bool IsClimbing()` * Parameters * _none_ * Returns * `bool` - Returns `true` if climbing is currently taking place. The IsClimbing method will return if climbing is currently taking place or not. ## Example `VRTK/Examples/037_CameraRig_ClimbingFalling` shows how to set up a scene with player climbing. There are many different examples showing how the same system can be used in unique ways.