Skip to main content

About Navigation

XRScene에서 POI를 이용한 네비게이션을 사용하는 방법을 설명 합니다.

public void OnClickNavigation()
    {
        RemovePaths();
        if(XRAPI.Instance.spaceId == null)
        {
            Debug.LogError("Can't Find Spot, Place Name");
            return;
        }
        if (!XRStudioController.Instance.ARMode)
        {
            VPSTrackable eachTrackable = vPSTrackablesList[0];
            NavigationController.FindPath(this, XRAPI.Instance.GetAccessToken(), XRAPI.Instance.spaceId, arCamera.transform.position, XRAPI.Instance.spaceId, new Vector3(11.82481f, 0f, 5.36951f), 2.0f, vPSTrackablesList.ToArray(),
                (paths) => {
                    MakeNavigationArrowContent(paths);
                },
                () => {
                    Debug.LogError("No Path");
                }, XRAPI.Instance.spaceId);
            return;
        }
        if (currentLocalizerLocation != null)
        {
            GameObject trackingObject = null;
            foreach (VPSTrackable eachTrackable in vPSTrackablesList)
            {
                foreach (string eachLocation in eachTrackable.localizerLocation)
                {
                    if (currentLocalizerLocation == eachLocation)
                    {
                        trackingObject = eachTrackable.gameObject;
                        break;
                    }
                }
            }
            if (trackingObject != null)
            {
                NavigationController.FindPath(this, XRAPI.Instance.GetAccessToken(), XRAPI.Instance.spaceId, arCamera.transform.position, XRAPI.Instance.spaceId, new Vector3(11.82481f, 0f, 5.36951f), 2.0f, vPSTrackablesList.ToArray(),
                (paths) => {
                    MakeNavigationArrowContent(paths);
                },
                () => {
                    Debug.LogError("No Path");
                }, XRAPI.Instance.spaceId);
            }
        }
    }
  • 네비게이션 경로는 NavigationController.FindPath() 함수의 파라미터인 place_unique_name를 통해서 요청하게 됩니다. place_unique_name는 SpaceId를 통해서 획득하게 됩니다.
  • 요청된 결과로 현재 사용자의 위치로 부터 목적지까지의 경로를 얻게 됩니다.
  • MakeNavigationArrowContent() 함수로 컨텐츠 결과물을 확인할 수 있습니다.
  • 네비게이션 검색 파라미터는 Trackable에 포함 되어 있습니다.
  • 목적지에 대한 좌표는 POI를 통해서 획득 하거나, 메쉬의 주변부의 좌표를 획득해서 얻을 수 있습니다.