2016-03-06 124 views
1

我正在嘗試制定如何創建ADF,在其中放置一個對象,然後當我在本地化發生後再次運行應用程序時,該對象始終在那裏。當用戶完成將對象「丟棄」到場景中,然後在隨後的運行中重新加載它們時,是否必須將虛擬對象的位置保存到單獨的文件中?還是有辦法將它們保存到ADF中?ADF中的持久對象

回答

0

除非你破解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 –

1

我們無法使用ADF保存對象,而是在加載ADF時,可以將對象添加到識別的座標後識別ADF。

我做了這樣的事情,並得到它的工作,但發現放置的對象振盪,並沒有把它放在隨後的ADF加載完全相同的地方。因爲無論Tango連接何時建立,該位置都被視爲原點(0,0,0),並且對象被放置與該原點相關。所以很難在完全相同的地方看到這些物體。

0

我做了你說的。 您必須將對象的座標寫入分離的文件中,然後當您重新加載場景並識別您的房間時(感謝adf),只需將對象放回相同的座標系即可。

當然,每個座標(XYZ)必須引用ADF探戈姿勢 - >基礎= TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION

團結這很簡單,你只需要檢查「真」的「使用面積描述構成「在你的ARCamera探戈腳本上,同樣在你的PointCloud腳本中也有使用它。