ADF中的持久对象

问题描述:

我正在尝试制定如何创建ADF,在其中放置一个对象,然后当我在本地化发生后再次运行应用程序时,该对象始终在那里。当用户完成将对象“丢弃”到场景中,然后在随后的运行中重新加载它们时,是否必须将虚拟对象的位置保存到单独的文件中?还是有办法将它们保存到ADF中?ADF中的持久对象

除非你破解ADF的一些元数据,否则没有好的办法将它保存到ADF中。但不建议黑客入侵元数据。

+0

因此,将X,Y,Z位置保存到一个文件中,然后在运行时加载该文件是一种方式吗? – jonr79

+0

是的,正确的。实际上,如果您查看Unity中的AreaLearning示例,我们也是这么做的。这是保存xml的行:https://github.com/googlesamples/tango-examples-unity/blob/master/UnityExamples/Assets/TangoSDK/Examples/AreaLearning/Scripts/AreaLearningInGameController.cs#L149 –

我们无法使用ADF保存对象,而是在加载ADF时,可以将对象添加到识别的坐标后识别ADF。

我做了这样的事情,并得到它的工作,但发现放置的对象振荡,并没有把它放在随后的ADF加载完全相同的地方。因为无论Tango连接何时建立,该位置都被视为原点(0,0,0),并且对象被放置与该原点相关。所以很难在完全相同的地方看到这些物体。

我做了你说的。 您必须将对象的坐标写入分离的文件中,然后当您重新加载场景并识别您的房间时(感谢adf),只需将对象放回相同的坐标系即可。

当然,每个坐标(XYZ)必须引用ADF探戈姿势 - >基础= TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION

团结这很简单,你只需要检查“真”的“使用面积描述构成“在你的ARCamera探戈脚本上,同样在你的PointCloud脚本中也有使用它。