VRTK_InteractUse
Overview
The Interact Use script is attached to a Controller object within the [CameraRig]
prefab and the Controller object requires the VRTK_ControllerEvents
script to be attached as it uses this for listening to the controller button events for using and stop using interactable game objects. It listens for the AliasUseOn
and AliasUseOff
events to determine when an object should be used and should stop using.
The Controller object also requires the VRTK_InteractTouch
script to be attached to it as this is used to determine when an interactable object is being touched. Only valid touched objects can be used.
An object can be used if the Controller touches a game object which contains the VRTK_InteractableObject
script and has the flag isUsable
set to true
.
If a valid interactable object is usable then pressing the set Use
button on the Controller (default is Trigger
) will call the StartUsing
method on the touched interactable object.
Inspector Parameters
- Hide Controller On Use: Hides the controller model when a valid use action starts.
- Hide Controller Delay: The amount of seconds to wait before hiding the controller on use.
Class Events
ControllerUseInteractableObject
- Emitted when a valid object starts being used.ControllerUnuseInteractableObject
- Emitted when a valid object stops being used.
Unity Events
Adding the VRTK_InteractUse_UnityEvents
component to VRTK_InteractUse
object allows access to UnityEvents
that will react identically to the Class Events.
OnControllerUseInteractableObject
- Emits the ControllerUseInteractableObject class event.OnControllerUnuseInteractableObject
- Emits the ControllerUnuseInteractableObject class event.
Event Payload
uint controllerIndex
- The index of the controller doing the interaction.GameObject target
- The GameObject of the interactable object that is being interacted with by the controller.
Class Methods
GetUsingObject/0
public GameObject GetUsingObject()
- Parameters
- none
- Returns
GameObject
- The game object of what is currently being used by this controller.
The GetUsingObject method returns the current object being used by the controller.
ForceStopUsing/0
public void ForceStopUsing()
- Parameters
- none
- Returns
- none
The ForceStopUsing method will force the controller to stop using the currently touched object and will also stop the object's using action.
ForceResetUsing/0
public void ForceResetUsing()
- Parameters
- none
- Returns
- none
The ForceResetUsing will force the controller to stop using the currently touched object but the object will continue with it's existing using action.
Example
VRTK/Examples/006_Controller_UsingADoor
simulates using a door object to open and close it. It also has a cube on the floor that can be grabbed to show how interactable objects can be usable or grabbable.
VRTK/Examples/008_Controller_UsingAGrabbedObject
which shows that objects can be grabbed with one button and used with another (e.g. firing a gun).
Updated less than a minute ago