Skip to main content

Navigation

note

네비게이션을 사용하는 방법을 설명 합니다.

// MaxstSceneManager.cs

public void OnClickNavigation()
{
RemovePaths();

string accessToken = TrackerManager.GetInstance().GetAccessToken();

if (!XRStudioController.Instance.ARMode)
{
VPSTrackable eachTrackable = vPSTrackablesList[0];
NavigationController.FindPath(this, accessToken, eachTrackable.navigationLocation, arCamera.transform.position, eachTrackable.navigationLocation, new Vector3(10.4904403687f, -0.1800000072f, 27.6305427551f), 2.0f, vPSTrackablesList.ToArray(),
(paths) => {
MakeNavigationArrowContent(paths);
},
() => {
Debug.Log("No Path");
}, eachTrackable.navigationLocation);
return;
}
string navigationLocation = "";
if (currentLocalizerLocation != null)
{
GameObject trackingObject = null;
foreach (VPSTrackable eachTrackable in vPSTrackablesList)
{
foreach (string eachLocation in eachTrackable.localizerLocation)
{
if (currentLocalizerLocation == eachLocation)
{
navigationLocation = eachTrackable.navigationLocation;
trackingObject = eachTrackable.gameObject;
break;
}
}
}

if (trackingObject != null)
{
NavigationController.FindPath(this, accessToken, navigationLocation, arCamera.transform.position, navigationLocation, new Vector3(10.4904403687f, -0.1800000072f, 27.6305427551f), 2.0f, vPSTrackablesList.ToArray(),
(paths) => {
MakeNavigationArrowContent(paths);
},
() => {
Debug.Log("No Path");
}, navigationLocation);
}
}
}
  • 네비게이션 경로는 NavigationController.FindPath() 함수의 파라미터인 place_unique_name를 통해서 요청하게 됩니다. place_unique_name는 placeId를 통해서 획득하게 됩니다.

  • 요청된 결과로 현재 사용자의 위치로 부터 목적지까지의 경로를 얻게 됩니다.

  • MakeNavigationArrowContent() 함수로 컨텐츠 결과물을 확인할 수 있습니다.

  • 네비게이션 검색 파라미터는 Trackable에 포함 되어 있습니다.

  • 목적지에 대한 좌표는 POI를 통해서 획득 하거나, 메쉬의 주변부의 좌표를 획득해서 얻을 수 있습니다.

""