我只是想知道是否有重置功能来重置头部旋转。 我见过的大多数VR SDK(Oculus,Carboard等)都有办法使当前旋转成为默认的正向旋转。 在框架中有一种简单的方法吗?
答案 0 :(得分:1)
您可以在相机周围添加包装器实体,并在事件上,将实体包装器围绕Y轴的旋转设置为负相机围绕Y轴的旋转。
这是一个使用@jhsu的shake.js的例子(但在React中):
var me = this
组件将是:
import React from 'react';
import Camera from './Camera';
import Shake from 'shake.js';
class Player extends Component {
componentDidMount() {
this.shaker = new Shake({
threshold: 5,
timeout: 250,
});
this.shaker.start();
window.addEventListener('shake', this.reorient, false);
}
reorient() {
if (this.camera) {
const rotation = this.camera.getAttribute('rotation');
this.setState({
orientation: { x: 0, y: -1 * rotation.y, z: 0 }
});
}
}
cameraMounted = (camera) => {
this.camera = camera;
}
render() {
return <Camera
rotation={this.state.orientation}
onMount={this.cameraMounted}
/>
}
}