The oculus-go-controls component interfaces with the Oculus Go controllers. It wraps the tracked-controls component while adding button mappings, events, and an Oculus Go controller model that highlights the touched and/or pressed buttons (trackpad, trigger).


<!-- Match Oculus Go controller if present, regardless of hand. -->
<a-entity oculus-go-controls></a-entity>

<!-- Match Oculus Go controller if present and for specified hand. -->
<a-entity oculus-go-controls="hand: left"></a-entity>
<a-entity oculus-go-controls="hand: right"></a-entity>


Property Description Default
armModel Whether the arm model is used for positional data. true
buttonColor Button colors when not pressed. #000000
buttonTouchedColor Button colors when touched. #777777
buttonHighlightColor Button colors when pressed and active. #FFFFFF
hand The hand that will be tracked (e.g., right, left).
model Whether the Oculus Go controller model is loaded. true
orientationOffset Offset to apply to model orientation. x: 0, y: 0, z: 0


Event Name Description
touchpadchanged Touchpad changed.
touchpaddown Touchpad pressed.
touchpadup Touchpad released.
touchpadtouchstart Touchpad touched.
touchpadtouchend Touchpad not touched.
touchpadmoved Touchpad moved.
triggerchanged Trigger changed.
triggerdown Trigger pressed.
triggerup Trigger released.

Legacy WebVR Browsers

Legacy WebVR browsers use the older ‘trackpadXXXX’ event names, rather than the WebXR nomenclature ‘touchpadXXXX’. If you want to support both event types, then you can listen for both flavors of event names.

el.addEventListener('touchpadchanged', yourHandler);
el.addEventListener('trackpadchanged', yourHandler);