본문 바로가기

유니티(Unity)/Hololens2

[Hololens 2] 홀로렌즈 2 - GridObjectCollection, DirectionalIndicator, Tap To Place

이번에는 객체의 위치 지정과 객체 추적을 알아보겠습니다.

 

[이전 글]

[AR/Hololens 2] 홀로렌즈 2 - Object Manipulator, NearInteractionGrabbable, Build

 

[AR/Hololens 2] 홀로렌즈 2 - Object Manipulator, NearInteractionGrabbable, Build

세팅을 끝냈으니 손 상호작용 예제(그 중에서도 손으로 집기)를 만들어서 테스트 해보겠습니다. [이전 글] [AR/Hololens 2] 홀로렌즈 2 개발 준비 [AR/Hololens 2] 홀로렌즈 2 개발 준비 이번에는 홀로렌즈

ggjjdiary.tistory.com

 


 

준비물

https://github.com/microsoft/MixedRealityLearning/releases/download/getting-started-v2.5.0/MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.2.5.0.1.unitypackage

 

 

Hierarchy - 우클릭 - Create Empty로 빈 객체를 만듭니다. 이름은 RoverExplorer로 지정합니다.

 

 

방금 만든 RoverExplorer의 Transform을 아래와 같이 맞춰줍니다.

 

 

Project 창에서 Assets - MRTK.Tutorials.GettingStarted - Prefabs에 있는 TableRoverExplorer의 자식 객체로 끌어옵니다.

 

 

Table의 Transform을 아래와 같이 수정합니다.

 

 

이어서 RoverAssembly도 RoverExplorer의 자식 객체로 끌어옵니다. Transform을 아래와 같이 구성해줍니다.

 

 

 

Hierachy 창의 RoverExplorer - 우클릭 - Create Empty으로 빈 객체를 자식으로 추가합니다. 이름은 RoverParts로 합니다.

 

 

RoverParts의 Transform을 아래처럼 만들어줍니다.

 

 

Hierarchy 창의 RoverExplorer - RoverAssembly - RoverModel - Parts의 모든 자식 객체를 선택해서 우클릭 - Duplicate를 눌러 복제해줍니다.

 

 

복제한 객체들은 RoverParts의 자식 객체로 옮겨줍니다.

 

 

복제된 객체들의 이름의 (1) 부분을 모두 _Part로 모두 바꿔줍니다.

 

 

GridObjectCollection

RoverParts의 Inspector 창에서 Add Component - GridObjectCollection을 추가합니다.

 

 

GridObjectCollection의 값을 아래로 구성합니다. 구성이 끝나면 Update Collection을 눌러 RovertParts의 자식 객체들의 위치를 업데이트 합니다.

 

 

DirectionalIndicator

Project 창에서 Assets - MRTK.Tutorials.GettingStarted - Prefabs에 있는 Chevron을 씬에 배치합니다. 위치는 X = 0, Y = 0, Z = 2에 위치시킵니다. 이름은 Indicator로 지정합니다.

 

 

Indicator의 Inspector 창에서 Add Component - DirectionalIndicator를 추가합니다.

 

 

DirectionalIndicator를 추가하면 자동으로 SolverHandler도 추가됩니다. 둘의 값을 각각 아래와 같이 지정합니다.

Directional Target을 지정하려면 RoverExplorer를 끌어와서 지정합니다.

 

 

테스트 실행을 하면, Rover의 위치를 가리키는 표시가 화면에 나타납니다.

 

Tab To Place

RoverExplorer의 자식 객체인 RoverAssembly의 Inspector창에서 Add Component - Tab To Place를 추가합니다. 

 

 

마찬가지로 Tab To Place를 추가하면 SolverHandler도 같이 추가됩니다. 추가된 스크립트를 아래와 같이 지정합니다.

 

 

그리고 On Placing Started ()+를 눌러서 아래와 같이 추가해줍니다.

 

 

메뉴 모음에서 GameObject - 3D Object - Cube를 선택해 큐브를 하나 배치합니다. Transform은 아래를 참고해서 수정해줍니다.

 

 

큐브의 Inspector 창에서 Layer를 찾아 Add Layer를 누르고 User Layer 31에 Spatial Awareness를 추가합니다. 큐브의 레이어를 Spatial Awareness로 지정합니다.

 

 

RoverExplorer - RoverAssembly로 돌아와 Inspector창 - Tap To Place (Script) - Advanced Properties - Magnetic Surfaces의 Element 0을 Spatial Awareness로 지정합니다.

 

 

분해된 파츠들이 본체 주변에 보이는지 테스트합니다.