我正在使用Three.js创建一个webVR应用程序。我已经实现了DeviceOrientationControls,但是现在想用Google硬纸板上的磁铁按钮在虚拟空间中移动。
我想要它,因此只要轻轻一按磁铁,摄像机便可以朝我看的任何方向运动。再次单击将停止运动。
这可能吗?如果是这样,我将如何实施呢,我完全陷入了困境。
我的假设是磁铁引起“喀哒”事件。但是,在检测到此喀哒声之后,如何使相机朝所看方向移动?
谢谢
最佳答案
使用DeviceOrientationControls
的freeze
属性:
var controls = new THREE.DeviceOrientationControls(camera);
controls.connect();
controls.update();
window.addEventListener('click', function() { controls.freeze = !controls.freeze; }, false);
当然,只有在您使用与屏幕接触的Google Cardboard版本的情况下,此方法才有效。带有纯磁场开关的原始纸板将无法访问,因为没有暴露的磁力计API(除非您的设备的旋转传感器质量较差,否则首先使用
DeviceOrientationControls
是个坏主意)。关于javascript - 在DeviceOrientationControls中设置摄像机运动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35027330/