【问题标题】:Aframe a-sky change rotation upon scene change场景变化时 Aframe a-sky 变化旋转
【发布时间】:2019-09-08 06:20:42
【问题描述】:

您好,我正在尝试在场景之间导航。当我在场景之间导航时,我无法设置/更新更改场景的旋转。我正在存储场景的旋转,然后在它们之间导航。请帮助挣扎了很多天

链接到我在 Glitch 上的代码https://glitch.com/~thin-newsstand

工作说明。 1.保存相机按钮将旋转与场景一起保存到选择中 自定义数据属性名 data -r 2. 如果您检查选择下拉选项,您会注意到。 3.更改选择选项时,它将从“选择”选项中更改天空图像并更改旋转。 4. 我使用aframe-viewable-component.js 来限制天空盒的顶部/底部移动。

【问题讨论】:

    标签: three.js aframe


    【解决方案1】:

    当加载新的全景图时,听起来您想要保存和恢复相机旋转。 由于您使用的是相机上的外观控制组件,因此您需要使用该组件来执行此操作。最好修改该组件,并创建您自己的自定义变体。你可以在这里下载原版: https://github.com/aframevr/aframe/blob/master/src/components/look-controls.js

    组件确实具有保存和恢复位置和旋转的内置功能

    saveCameraPose: function () 
    restoreCameraPose: function () 
    

    按照写的,组件只能保存一个条目

     this.savedPose.position.copy(el.object3D.position);
     this.savedPose.rotation.copy(el.object3D.rotation);
    

    取决于您想要的内容,您可能必须将位置/旋转保存到与每个PANO关联的新变量,以便选择新的PANO时,相同的摄像头/腐烂的条目也加载和相机恢复。最好使用数组来执行此操作。伪代码看起来像:

    1. 创建一个数组(包含对象:{camPos, camRot})。命名为 savedCamPR。
    2. 选择新的PANO获取当前PANO的索引。命名为 curPanoID
    3. 将外观控件 pos/rot 保存到 savedCamPR[curPanoID],即使用当前全景索引的数组。
    4. 获取新pao的索引。
    5. 如果在 savedCamPR 中有一个已保存的条目,请使用它来恢复相机。

    如果您无法弄清楚,请告诉我们,我可能会制作一个在线示例,为多个全景图保存和恢复相机位置。

    【讨论】:

    • 我明白,我可以保存位置和旋转,但是当我更新之前检索到的旋转和位置时。它没有显示 360 度图像的同一部分。它被移动到不同的部分。
    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多