【问题标题】:change camera rotation without dragging canvas in Aframe无需在 Aframe 中拖动画布即可更改相机旋转
【发布时间】:2018-09-22 10:29:26
【问题描述】:

我现在正在玩 Aframe(0.8.0 版)。我被一个问题困住了,几天来我一直在寻找它的解决方案,但因此这个问题失败了。

我的问题是如何更改相机旋转而不必在画布上拖动?

我尝试了这些方法,但没有奏效:

  • camera.setAttribute('rotation', {....})
  • camera.object3D.children[0].rotation.x = 0 // 一些值
  • 将相机实体作为另一个实体的子实体并更改父实体的旋转不是我想要的

任何提示将不胜感激,谢谢...

更新:此问题仅在 0.8 版本中出现。之前的0.7.1版本没有这个错误。

【问题讨论】:

    标签: aframe


    【解决方案1】:

    你的里程会有所不同,但你可以试试:

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

        AFRAME.registerComponent("rotate", {
            init: function () {
              document.body.onkeyup = (e) => {
                if(e.keyCode == 32){
                  this.el.components['look-controls'].yawObject.rotation.y += 1
                }
              }
            }
        });
    

    【讨论】:

    • 我尝试了您的故障代码,但是如果我在画布上拖动几次点击后,相机会围绕 Z 轴旋转一点。 In this screenshot it is obvious
    • 我没有意识到你想要外观控件和这个功能。从我看到你可能会与外观控件组件冲突:github.com/aframevr/aframe/blob/master/src/components/… 也就是说,修复上述代码的不完美方法类似于:this.el.components.camera.camera.parent.rotation.set(0, 45, 0) 但您会注意到外观控件重置鼠标拖动时的旋转,因此您可能希望使用 api 修改您自己的外观控件版本以挂钩到“pitchObject”。快速修复例如:glitch.com/edit/#!/a-frame-cam-rotate-drag
    • 现在我需要尝试的唯一解决方案是查看外观控件的源代码,看看是否能找到任何东西。非常感谢。在查看外观控件后,我会接受您的回答(或者可能会更新它)。
    • 更新了答案以更深入地了解外观控件组件。这可能是一种帮助您避免修改组件的方法。不是最漂亮的方式,但应该让你更进一步。如果 a-frame 更新、重命名或删除该属性,则存在一个小风险,它可能会在将来破坏您的代码。 glitch.com/edit/#!/a-frame-look-rotate
    • 这似乎没有任何副作用。如果我遇到任何问题,我会报告。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多