未验证 提交 3f16519f 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #17938 from fernandojsg/squeeze

Added squeeze* input events for WebVR and WebXR Managers
......@@ -104,6 +104,7 @@ function WebVRManager( renderer ) {
//
var triggers = [];
var grips = [];
function findGamepad( id ) {
......@@ -179,6 +180,33 @@ function WebVRManager( renderer ) {
}
// Grip
buttonId = 2;
if ( grips[ i ] === undefined ) grips[ i ] = false;
// Skip if the grip button doesn't exist on this controller
if ( gamepad.buttons[ buttonId ] !== undefined ) {
if ( grips[ i ] !== gamepad.buttons[ buttonId ].pressed ) {
grips[ i ] = gamepad.buttons[ buttonId ].pressed;
if ( grips[ i ] === true ) {
controller.dispatchEvent( { type: 'squeezestart' } );
} else {
controller.dispatchEvent( { type: 'squeezeend' } );
controller.dispatchEvent( { type: 'squeeze' } );
}
}
}
} else {
controller.visible = false;
......
......@@ -133,6 +133,9 @@ function WebXRManager( renderer, gl ) {
session.addEventListener( 'select', onSessionEvent );
session.addEventListener( 'selectstart', onSessionEvent );
session.addEventListener( 'selectend', onSessionEvent );
session.addEventListener( 'squeeze', onSessionEvent );
session.addEventListener( 'squeezestart', onSessionEvent );
session.addEventListener( 'squeezeend', onSessionEvent );
session.addEventListener( 'end', onSessionEnd );
// eslint-disable-next-line no-undef
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册