2017-07-19 57 views
0

我想在Unity下使用AreaDescription和AreaLearning來放置,保存和加載AR中的對象,但在重新定位和閉環時我遇到了問題。檢索AR對象相對於ADF的位置

現在我可以學習一個ADF,加載它並重新定位(從開發者網站的AreaLearning教程)。我也設法放置對象並將它們的座標保存在xml中。

我的問題是當我加載XML時,我的對象的座標是相對於應用程序的服務開始時,我保存它們,使他們不在我的場景中的正確位置。

我不明白在AreaLearning示例中這是如何完成的。我知道這是在AreaLearningInGameController中,但我真的不明白它的工作流程。

總結一個問題:如何在AR中保存與ADF相關的對象,以及如何從ADF中檢索其位置到我的應用程序?

如果您有提示,輔導或解釋,我將不勝感激!

謝謝。

回答

0

好吧,我找到了我的問題的答案和我的問題的解決方案。

令人驚訝的是,Google在其ADF tutorial中沒有更多強調這一點。

無論如何,關鍵是在Tango AR Camera Prefab的Tango Pose Controller腳本中檢查「Use AreaDescription」。這是布爾值,它定義了用於估計姿勢的參考框架是關於ADF還是服務啓動。 Et voilaa ...沒有更多的事情要做。

這是非常簡單和愚蠢的,但真的不明顯,因爲默認情況下禁用此布爾值,並且在SDK的ADF示例中,它將在Unity編輯器中進行檢查(因此您無法通過查看腳本)。

1

您說得對,XML保存了對象相對於服務啓動的位置。對於新記錄的區域描述,該區域描述的來源在初始記錄時固定爲服務開始。將來加載區域描述時,其來源不會改變。

要使對象保持持久狀態,需要加載之前記錄的區域說明,並確保Tango Manager和Tango Pose Controller都配置爲使用區域描述(而不是服務啓動)作爲原點。

我希望這有助於!