加载sceneStructure后,巡视路点不可用

时间:2017-11-05 21:24:36

标签: 3d.io

在HTML中我定义了3个旅游路线点。 但在加载JSON sceneStructure后,它们将被删除。 有趣的是,相机拥有3个航路点条目, 但他们都是零。看起来他们被删除了 sceneStructure loading。

如何避免这种情况?

代码要大到这里复制,因此作为URL(抱歉)。 有问题的代码可以在这里找到:

http://archi.metason.net/tmp/buggy_space3d.html

2 个答案:

答案 0 :(得分:0)

您似乎在加载场景的代码中找到了一个边缘大小写。 加载场景时,场景结构中的摄像机+巡视路点将添加到场景中并使用。

问题是只能有一个活动的摄像头,问题是优先级:来自场景或初始HTML的摄像头(和巡视路点)。

我们将添加文档来解释这个和行为(来自场景的摄像头优先)。 这可以通过而不是将场景摄像机添加到A-Frame场景中来规避:

io3d.scene.getAframeElementsFromSceneStructure(sceneStructure)
  .then(elements => elements.filter(elem => !elem.hasAttribute('camera'))
  .then(elements => elements.forEach(el => scene.appendChild(el))

您还在我们的文档中遇到了一个问题,我们现在正在进行更正!

由于相机航点可能有多个相同的标题,我们更改了库以使用io3d-uuid方法的其他goTo属性:

<a-entity tour-waypoint="Esszimmer" io3d-uuid="ez" position="-0.0 1.6 -0.0" rotation="0 45.8 0"></a-entity>
<a-entity tour-waypoint="Wohnzimmer" io3d-uuid="wz" position="0.2 1.6 -2.8" rotation="0 152.9 0"></a-entity>
<a-entity tour-waypoint="Arbeitszimmer" io3d-uuid="az" position="-0.9 1.6 6.1" rotation="0 47.9 0"></a-entity>

然后像这样使用它们:

document.getElementById('camera').components.tour.goTo('az')

感谢您提出问题&amp;帮助3D.io让每个人都更好!

答案 1 :(得分:0)

根本原因可能与此处相同: Waypoints animation issue at 3d.io

版本4中的aframe-animation-component有一个重大变化。为避免使用旧版本:

<script src="https://unpkg.com/aframe-animationcomponent@3.2.5/dist/aframe-animation-component.min.js"></script>