ARManager arManagr =FindObjectOfType<ARManager>();if (arManagr ==null){Debug.LogError("Can't find ARManager. You need to add ARManager prefab in scene.");return;}else{ arCamera =arManagr.gameObject;}VPSTrackable[] vPSTrackables =FindObjectsOfType<VPSTrackable>(true);if (vPSTrackables !=null){vPSTrackablesList.AddRange(vPSTrackables);}else{Debug.LogError("You need to add VPSTrackables.");}foreach (GameObject eachObject in disableObjects){if(eachObject !=null) {eachObject.SetActive(false); }}if (XRStudioController.Instance.ARMode){ AndroidRuntimePermissions.Permission[] result = AndroidRuntimePermissions.RequestPermissions("android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.CAMERA", "android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_COARSE_LOCATION");
if (result[0] == AndroidRuntimePermissions.Permission.Granted && result[1] == AndroidRuntimePermissions.Permission.Granted)
Debug.Log("We have all the permissions!");elseDebug.Log("Some permission(s) are not granted..."); cameraBackgroundBehaviour =arManagr.GetCameraBackgroundBehaviour();if (cameraBackgroundBehaviour ==null) {Debug.LogError("Can't find CameraBackgroundBehaviour.");return; }foreach (VPSTrackable vPSTrackable in vPSTrackablesList) {vPSTrackable.gameObject.SetActive(false); }}else{this.enabled=false;if(startPov !=null) {startPov.StartPlace(); }}
XRStudioController로 위치 인식을 위한 서버 이름을 얻습니다.
Occlusion (건물 메쉬에 의한 가려짐) 구현
렌더링하고자 하는 3D 오브젝트가 건물 메쉬에 의해 가려지는 효과를 Occlusion effect라고 합니다. Occlusion은 runtimeBuildingMaterial를 렌더링시 적용함으로써 구현됩니다.
스마트폰과 스마트 글래스와 같은 모바일 기기 환경에서는 아래 코드를 통해 하드웨어 카메라가 시작됩니다. MAC OS X와 Windows 환경에서는 XRStudioController를 통해 선택한 시뮬레이션 데이터가 시작됩니다. 이를 통해 현장에 직접 나가지 않아도 앱 개발이 가능합니다.