연습 - Azure Spatial Anchors 시작
이 단원에서는 다음을 수행하는 데 필요한 단계를 살펴보겠습니다.
- Azure Spatial Anchors 세션을 시작하고 중지합니다.
- 단일 디바이스에서 공간 앵커를 만들고, 업로드하고, 다운로드합니다.
이 학습 모듈의 필수 구성 요소를 완료했다면 OpenXR 및 MRTK3에 대한 Unity 프로젝트가 이미 설정되고 구성되어 있을 것입니다. 해당 프로젝트를 연 다음 검사 적절한 기능을 선택했는지 확인합니다.
- 편집 > 프로젝트 설정 > 플레이어 > 게시 설정으로 이동합니다.
- 아래로 스크롤하여 기능 섹션을 찾고, 아직 다음 항목을 선택하지 않았으면 지금 선택합니다.
- SpatialPerception
- InternetClient
- PrivateNetworkClientServer
완료되면 프로젝트 설정 창을 닫고 다음 단계를 계속 진행합니다.
기본 제공된 Unity 패키지를 설치하고 자습서 자산을 가져옵니다.
메뉴 모음에서 창>패키지 관리자를 선택합니다.
AR Foundation 버전 5.0.3 또는 최신 버전이 설치되어 있는지 확인합니다.
자습서 자산 가져오기
이 자습서에 따라 프로젝트에 Azure Spatial Anchors SDK V2.12 또는 최신 버전을 추가합니다.
순서대로 다음 Unity 사용자 지정 패키지를 다운로드하여 가져옵니다.
- MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.3.0.0.unitypackage
- MRTK.HoloLens2.Unity.Tutorials.Assets.AzureSpatialAnchors.3.0.0.unitypackage
참고 항목
MRTK3 및 ASA를 모두 가져오면 ARFoundation 패키지 버전이 가져온 ARSubsystems 버전과 일치하지 않을 때 오류가 발생할 수 있습니다. 이 문제가 해결될 때까지 해결 방법으로 com.unity.xr.arsubsystems 버전 5.0.2를 프로젝트의 패키지 관리자에 수동으로 추가할 수 있습니다.
ARSubsystems가 더 이상 사용되지 않는다는 경고가 표시되지만 무시할 수 있습니다. “WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)”라는 CS0618 경고가 사용되지 않는 경우에도 무시할 수 있습니다.
장면 준비
이 섹션에서는 자습서 프리팹 중 일부를 추가하여 장면을 준비합니다.
프로젝트 창에서 자산>MRTK로 이동합니다. Tutorials.AzureSpatialAnchors>Prefabs 폴더를 선택한 다음, 다음 프리팹을 계층 구조 창으로 끌어 장면에 추가합니다.
- ButtonParent 프리팹
- Instructions 프리팹
- ParentAnchor 프리팹
- 단추 부모의 변환/위치 값을 X = 0.0, Y = 1.6, Z = 0.6으로 변경합니다.
- 지침 변환/위치 값을 X = -0.8, Y = 2.0, Z = 2.0으로 변경합니다.
- 부모 앵커의 변환/위치 값을 X = -0.3, Y = 1.5, Z = 0.6으로 변경합니다.
팁
화면에 큰 아이콘(예: 큰 프레임의 "T" 아이콘)이 표시되어 방해가 되는 경우 Gizmos 드롭다운을 열고 개별 개체의 아이콘 표시를 해제하여 아이콘을 숨길 수 있습니다.
계층 구조 창에서 MRTK XR Rig>카메라 오프셋을 선택합니다.
검사기 창에서 구성 요소 추가 단추를 사용하여 다음 구성 요소를 추가합니다.
- AR 앵커 관리자(스크립트)
- DisableDiagnosticsSystem(스크립트)
참고 항목
AR Anchor Manager(스크립트) 구성 요소를 추가하면 AR Anchor Manager(스크립트) 구성 요소에 필요하기 때문에 XR Origin 구성 요소가 자동으로 추가됩니다.
장면이 작동하도록 단추 구성
이 섹션에서는 장면에 스크립트를 추가하여 로컬 앵커와 공간 앵커가 앱에서 작동하는 기본 방식을 보여 주는 일련의 단추 이벤트를 만듭니다.
계층 구조 창에서 ButtonParent 개체를 확장하고 첫 번째 자식 개체인 StartAzureSession을 선택합니다.
검사기 창에서 누를 수 있는 단추 구성 요소로 이동합니다. On Clicked() 이벤트가 있습니다.
계층 구조에서 ParentAnchor 개체를 선택한 다음, 검사기로 끌어서 On Clicked() 이벤트의 없음(개체) 필드에 놓습니다.
함수 없음 드롭다운을 선택한 다음, AnchorModuleScript>StartAzureSession()을 선택합니다. 이 함수는 이벤트가 트리거될 때 실행됩니다.
ButtonParent 자식 목록의 계층 구조 창에서 StopAzureSession을 선택합니다.
검사기 창에서 누를 수 있는 단추 구성 요소로 이동합니다.
계층에서 ParentAnchor 개체를 선택한 다음 검사기로 끌어온 다음 On Clicked() 이벤트의 None(개체) 필드에 놓습니다.
함수 없음 드롭다운을 선택한 다음, AnchorModuleScript>StopAzureSession ()을 선택합니다.
ButtonParent 자식 목록의 계층 구조 창에서 CreateAzureAnchor를 선택합니다.
검사기 창에서 누를 수 있는 단추 구성 요소로 이동합니다.
계층에서 ParentAnchor 개체를 선택한 다음 검사기로 끌어온 다음 On Clicked() 이벤트의 None(개체) 필드에 놓습니다.
함수 없음 드롭다운을 선택하고 AnchorModuleScript>CreateAzureAnchor를 선택합니다.
ParentAnchor 개체를 다시 선택한 다음 Inspector로 끌어서 AnchorModuleScript.CreateAzureAnchor의 매개 변수에 놓습니다.
ButtonParent 자식 목록의 계층 구조 창에서 RemoveLocalAnchor를 선택합니다.
검사기 창에서 누를 수 있는 단추 구성 요소로 이동합니다.
계층에서 ParentAnchor 개체를 선택한 다음 검사기로 끌어온 다음 On Clicked() 이벤트의 None(개체) 필드에 놓습니다.
함수 없음 드롭다운을 선택한 다음, AnchorModuleScript>RemoveLocalAnchor를 선택합니다.
ParentAnchor 개체를 다시 선택한 다음 Inspector로 끌어서 AnchorModuleScript.RemoveLocalAnchor의 매개 변수에 놓습니다.
ButtonParent 자식 목록의 계층 구조 창에서 FindAzureAnchor를 선택합니다.
검사기 창에서 누를 수 있는 단추 구성 요소로 이동합니다.
계층에서 ParentAnchor 개체를 선택한 다음 검사기로 끌어온 다음 On Clicked() 이벤트의 None(개체) 필드에 놓습니다.
함수 없음 드롭다운을 선택한 다음 AnchorModuleScript>FindAzureAnchor를 선택합니다.
ButtonParent 자식 목록의 계층 구조 창에서 DeleteAzureAnchor를 선택합니다.
검사기 창에서 누를 수 있는 단추 구성 요소로 이동합니다.
계층에서 ParentAnchor 개체를 선택한 다음 검사기로 끌어온 다음 On Clicked() 이벤트의 None(개체) 필드에 놓습니다.
함수 없음 드롭다운을 선택한 다음, AnchorModuleScript>DeleteAzureAnchor를 선택합니다.
Azure 리소스에 장면 커넥트
계층 구조 창에서 ParentAnchor 개체를 선택합니다.
검사기 창에서 앵커 관리자 스크립트(스크립트) 구성 요소를 찾습니다.
이 자습서 시리즈의 필수 구성 요소의 일부로 만든 Azure Spatial Anchors 계정의 자격 증명을 사용하여 자격 증명 섹션을 구성합니다.
- Spatial Anchors 계정 ID 필드에 Azure Spatial Anchors 계정의 계정 ID 값을 붙여넣습니다.
- Spatial Anchors 계정 키 필드에 Azure Spatial Anchors 계정의 액세스 키 값을 붙여넣습니다.
- Spatial Anchors 계정 도메인 필드에 Azure Spatial Anchors 계정의 계정 도메인 값을 붙여넣습니다.
Azure Spatial Anchors의 기본 동작을 사용해 보세요.
Azure Spatial Anchors는 Unity에서 실행할 수 없습니다. Azure Spatial Anchors 기능을 테스트하려면 프로젝트를 빌드하고 디바이스에 앱을 배포해야 합니다.
팁
Unity 프로젝트를 빌드하고 HoloLens 2에 배포하는 방법에 대한 미리 알림은 (선택 사항) 애플리케이션 빌드 및 배포 섹션에서 시작하는 HoloLens 2에 애플리케이션 빌드 문서를 참조하세요.
앱이 디바이스에서 실행되는 경우 Azure Spatial Anchor 자습서 지침 패널에 표시되는 화면의 지시를 따릅니다.
- 큐브를 다른 위치로 이동합니다.
- Azure 세션을 시작합니다.
- 큐브의 위치에 Azure 앵커를 만듭니다.
- Azure 세션을 중지합니다.
- 사용자가 큐브를 이동할 수 있도록 로컬 앵커를 제거합니다.
- 큐브를 다른 곳으로 이동합니다.
- Azure 세션을 시작합니다.
- 3단계의 위치에 큐브를 배치할 Azure 앵커를 찾습니다.
- Azure 앵커를 삭제합니다.
- Azure 세션을 중지합니다.
주의
Azure Spatial Anchors는 인터넷을 사용하여 앵커 데이터를 저장하고 로드합니다. 디바이스가 인터넷에 연결되었는지 확인합니다.