当用户在A-Frame场景中单击输入VR按钮时,如何重置摄像机位置?
我为桌面EnumType.ORDINAL
用户设置了一个漂亮的摄像头位置,但想要在Vive用户进入VR时重置wasd-controls
和position
。
我按照this answer的模式开始设置相机:
rotation
此处我尝试使用来自WebVR API的window.onvrdisplaypresentchange事件重置 <!-- Player -->
<a-entity id='cameraWrapper' position='1 1.8034 1' rotation='-35 40 0'>
<a-entity camera look-controls wasd-controls="fly: true"></a-entity>
</a-entity>
和position
:
rotation
这是一个[code sandbox demo],可以重现问题状态(http://blockbuilder.org/micahstubbs/94e06c2849b6c7c60105d0243bc1936a#mode=sidebyside)
我正在使用A-Frame Master和Aug 29 Chromium实验版本开发此场景,并启用 //
// if a VR display (like the Vive headset begins presenting
// (if the scene goes into VR mode)
// reset the camera position and rotation
//
window.onvrdisplaypresentchange = function() {
d3.select('#cameraWrapper')
.attr('position', '0 0 0')
.attr('rotation', '0 0 0');
}
和--enable-webvr
标记。
编辑:除了重置--enable-gamepad-extensions
(position x,z
之外,我真正想要做的还是将相机的rotation x,y,z
和position y
重设为Vive hmd的值为我们做了)
答案 0 :(得分:1)
使用camera.userHeight
设置非VR高度。
<a-entity camera="userHeight: 1.6">
非VR的相机高1.6米。在VR中,此高度将被删除。从VR返回时,将重新应用1.6米的高度。
https://aframe.io/docs/0.4.0/components/camera.html#vr-behavior
<a-camera>
和默认摄像头默认使用此功能。