Ориентация устройства запаздывает при добавлении в three.js OrbitControls

Я использую это руководство для изменения функции OrbitControls в Three.js, чтобы она также работала с мобильными гироскопами. Я следил за этим, и он работает, но он очень сильно отстает. Это странно, если учесть, что если я использую OrbitControls с мышью, даже с измененной версией, задержки нет, и камера движется плавно. Смотрите это видео для уточнения. Я пробовал это на физическом мобильном устройстве, и возникает та же проблема. Я подумал, что, возможно, что-то в слушателе событий вызывается недостаточно часто, но когда я попытался поместить журналы консоли в функцию обратного вызова слушателя, используемую в учебнике, он вызывается так же часто, как и должно быть. Что здесь происходит?

function onDeviceOrientationChangeEvent( event ) {
    scope.deviceOrientation = event;
    console.log(event);
    // ^ this is being called much more frequently than the camera is being updated
}

function onScreenOrientationChangeEvent( event ) {
    scope.screenOrientation = window.orientation || 0;
}


window.addEventListener( 'deviceorientation', onDeviceOrientationChangeEvent, false );
window.addEventListener( 'orientationchange', onScreenOrientationChangeEvent, false );

Модифицированный код для OrbitControls слишком длинный, чтобы вставить его здесь, поэтому я надеюсь, что pastebin в порядке.

0 ответов

Другие вопросы по тегам