Project Tango不会重新定位

时间:2016-06-02 13:55:29

标签: unity3d google-project-tango

我正在使用Unity3d中使用Project Tango的预定义ADF文件使用区域学习尝试区域识别。我使用this tutorial中的脚本作为基础,但出于某种原因,它不会重新定位。

using UnityEngine;
using System.Collections;
using Tango;

public class TestADFFile : MonoBehaviour, ITangoLifecycle
{
    private TangoApplication m_tangoApplication;
    public UnityEngine.UI.Text statusText;
    public string adfName;

    public void Start()
    {
        m_tangoApplication = FindObjectOfType<TangoApplication>();
        if (m_tangoApplication != null)
        {
            m_tangoApplication.Register(this);
            m_tangoApplication.RequestPermissions();
        }
    }

    public void OnTangoPermissions(bool permissionsGranted)
    {
        if (permissionsGranted)
        {
            if(AreaDescription.ImportFromFile(System.IO.Path.Combine(Application.streamingAssetsPath, "adfs/" + adfName))){
                 statusText.text = "success!";
            }
            else{
                statusText.text = "fail!";
            }
            AreaDescription[] list = AreaDescription.GetList();
            AreaDescription mostRecent = null;
            AreaDescription.Metadata mostRecentMetadata = null;
            if (list.Length > 0)
            {
                // Find and load the most recent Area Description
                mostRecent = list[0];
                mostRecentMetadata = mostRecent.GetMetadata();
                foreach (AreaDescription areaDescription in list)
                {
                    AreaDescription.Metadata metadata = areaDescription.GetMetadata();
                    if (metadata.m_dateTime > mostRecentMetadata.m_dateTime)
                    {
                        mostRecent = areaDescription;
                        mostRecentMetadata = metadata;
                    }
                }

                m_tangoApplication.Startup(mostRecent);
            }
            else
            {
                // No Area Descriptions available.
                Debug.Log("No area descriptions available.");
            }
        }
    }

    public void OnTangoServiceConnected()
    {
    }

    public void OnTangoServiceDisconnected()
    {
    }
}

statusText设置为“成功”,显然ADF已成功加载,对吗?

2 个答案:

答案 0 :(得分:1)

你做得对。 区域学习模式关闭的重新定位非常快速。但是,使用区域学习模式重新定位需要相当长的时间。你需要走动3-5分钟,直到重定位工作。不要放弃。我有同样的问题。但最终,它有效!

答案 1 :(得分:0)

我认为不是答案,而只是我要检查的事项清单。

  1. 检查要重新定位的ADF是否正确,您可能正在从其他区域加载ADF。
  2. 在TangoManager组件上检查“启用区域描述”是否设置为“真实”。
  3. 同时检查场景是否设置正确,所需的所有探戈组件如:RelocalizingOverlay.cs,TangoApplication.cs
  4. 另外作为个人注释,我注意到ADF有时需要花费很长时间来重新定位,有时它们根本不会重新定位。 我认为原因是房间有些变化或者灯光差异很大,不同我的意思是说你记录的那天ADF是一个非常阳光灿烂的日子,而你试图重新定位的那天是阴天。(这也是只是我的理论,我从我的测试中得到了)