【问题标题】:aframe camera not moving in vr modeaframe 相机在 VR 模式下不移动
【发布时间】:2018-02-15 20:43:59
【问题描述】:

我想在一个框架游戏中连续移动到相机的视口。我使用了here的代码:

在我的桌面浏览器(不是 vr 模式)中,它工作得很好,但是当我切换到 vr 模式时,移动不起作用......

这是我所拥有的一个例子:

    <!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>360° Image Browser</title>
    <script src="https://aframe.io/releases/0.7.1/aframe.min.js"></script>
    <script src="https://unpkg.com/aframe-extras.ocean@3.13.1/dist/aframe-extras.ocean.min.js"></script>


</head>

<body>
    <a-scene>
        <!-- sky + ocean -->
        <a-sky radius="100" src="http://2.bp.blogspot.com/-ELqPrSgPbGU/Vcnw54n7Q1I/AAAAAAAAGdk/rcfkvjlMNqI/s1600/PANO_360Test09.jpg"
            position="0 -6 0 "></a-sky>
        <a-ocean width="200" depth="200" density="200" position="0 0 0"></a-ocean>

        <!-- camera + cursor. -->
        <a-camera id="camera" position="0 20 80" fly wasd-controls-enabled="false" look>
            <a-cursor id="cursor" color="black"></a-cursor>
        </a-camera>
    </a-scene>
    <script>
        // document.querySelector("a-scene").enterVR();
        AFRAME.registerComponent("fly", {
            schema: {
                stepFactor: { type: "number", default: 0.1 },
                isFlying: { type: "boolean", default: true }
            },
            tick: function () {
                if (this.data.isFlying) {
                    this.el.components.camera.camera.parent.position.add(
                        this.el.components.camera.camera
                            .getWorldDirection()
                            .multiplyScalar(this.data.stepFactor)
                    );
                }
            }
        });
    </script>

</body>

</html>

你可以在脚本中通过删除commit来开启vr模式

任何人的想法?

【问题讨论】:

    标签: javascript camera move aframe virtual-reality


    【解决方案1】:

    我不完全确定切换到 VR 模式时会发生什么(关于相机元素),但尝试 setAttribute 似乎可以让它工作:

    https://glitch.com/edit/#!/a-frame-move-camera

    tick: function () {
        if (this.data.isFlying) {
            let newP = this.el.components.camera.camera.parent.position.add(this.el.components.camera.camera.getWorldDirection().multiplyScalar(this.data.stepFactor));
            this.el.setAttribute('position', newP)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-26
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 2021-04-04
      • 1970-01-01
      相关资源
      最近更新 更多