A帧天空在场景变化时改变旋转



嗨,我正在尝试在场景之间导航。当我在场景之间导航时,我无法设置/更新已更改场景的旋转。我正在存储场景的旋转,然后在两者之间导航。请帮助挣扎多天

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

工作解释。 1.保存相机按钮将旋转与场景一起保存到选择中,然后 自定义数据属性名称 data-r 2.如果您检查选择下拉选项,您会注意到。 3.更改选择选项时,它将从选择选项更改天空图像并更改旋转。 4.我使用了框架可视组件.js来限制天空盒的顶部/底部移动。

听起来您想在加载新的全景图时保存和恢复相机旋转。 由于您使用的是摄像机上的外观控制组件,因此您需要使用该组件执行此操作。最好修改该组件,并创建自己的自定义变体。您可以在此处下载原件: 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);

根据您想要的内容,您可能必须将位置/旋转保存到与每个全景关联的新变量中,以便在选择新全景时,也会加载相机 pos/rot 的相同条目并恢复相机。最好使用数组来执行此操作。伪代码看起来像这样:

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

如果您在弄清楚时遇到问题,请告诉我们,我可能会制作一个在线示例来保存和恢复多个全景图的相机位置。

最新更新