添加到three.js OrbitControls时设备方向滞后

时间:2019-01-28 06:41:14

标签: three.js gyroscope orbit-controls

我正在使用this tutorial来修改three.js的OrbitControls函数,使其也可以与移动陀螺仪一起使用。我遵循了它,但它确实有效,但它的表现确实很差。考虑到如果我用鼠标使用OrbitControls,即使使用修改后的版本,也不会出现滞后,并且相机可以平稳移动,这很奇怪。有关说明,请参见this video。我已经在物理移动设备上尝试过此操作,并且发生了相同的问题。我认为关于事件侦听器的某些事情可能没有得到足够频繁的触发,但是当我尝试将控制台日志放入本教程中使用的侦听器回调中时,它的调用频率应该是应该的。发生了什么事?

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 is ok.

0 个答案:

没有答案