有没有办法重新定位/重置方向?

时间:2017-04-23 20:35:42

标签: aframe

我只是想知道是否有重置功能来重置头部旋转。 我见过的大多数VR SDK(Oculus,Carboard等)都有办法使当前旋转成为默认的正向旋转。 在框架中有一种简单的方法吗?

1 个答案:

答案 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}
    />
  }
}