如何检测React VR场景中的Gear VR输入



我正在尝试使用React VR创建Web应用程序,并使用Samsung Gear VR进行运行。

在我的场景中,在VR模式下,我看不到默认的白点(VR指针(。因此,诸如"输入"one_answers" OnClick"之类的方法不起作用。如果我在VR模式外查看相同的场景,则相同的方法也可以很好地工作 - 甚至使用Gear VR中提供的浏览器。

我想念什么吗?在Gear VR中,如何在VR模式下访问这些方法?

在普通Web浏览器中正常工作的示例代码(包括Gear VR中的一个(,但在我在VR中时不行。

<Text
    style={{
        // backgroundColor: '#777879',
        fontSize: 0.2,
        transform: [{translate: [0, 0, -5]}],
        color: this.state.textColor
    }}
    onEnter={() => this.setState({textColor: 'gold'})}
    onExit={() => this.setState({textColor: 'white'})}>
    This text will turn gold when you look at it.
</Text>

您需要添加射线卡斯特:

要这样做,您需要执行以下操作:

在您的项目中,转到<project root>/vr/client.js。 就在init方法之前,添加SimpleRaycaster常数。

const SimpleRaycaster = {
    getType: () => "simple",
    getRayOrigin: () => [0, 0, 0],
    getRayDirection: () => [0, 0, -1],
    drawsCursor: () => true
};
function init(bundle, parent, options) {
//...

然后,在init方法中,设置cursorVisibility: visible并将RayCaster添加到raycasters的数组:

function init(bundle, parent, options) {
  const vr = new VRInstance(bundle, 'Example', parent, {
      raycasters: [
          SimpleRaycaster // Add SimpleRaycaster to the options
      ],
      cursorVisibility: "visible", // Add cursorVisibility
      enableHotReload: true,
    ...options,
  });
  vr.render = function() {
    // Any custom behavior you want to perform on each frame goes here
  };
  // Begin the animation loop
  vr.start();
  return vr;
}
window.ReactVR = {init};

就是这样。现在,您应该在视图中间有一个白点。

相关内容

  • 没有找到相关文章

最新更新