본문 바로가기
정글스터디_2022_상반기/우정

[VR] XR Interaction 사용하기

by KKKUJ 2022. 7. 5.

* 2022년 7월 5일 작성

* Unity 2021.3.5f1 버전

* Oculus 기기에 맞추어 진행

 

기본적으로 프로젝트를 세팅하고 나서는

유니티에서 보이는 화면이 기기에도 보일 수 있게 해야한다.

 

1. XR Origin 추가하기

Hierarchy뷰에서 오른쪽 마우스로 클릭하여 XR - XR Origin을 생성한다.

XR Origin에 대해 더 자세히 알고 싶다면 아래 접은글을 참고하면 된다.

더보기

XR Origin이란,

연결된 장비의 기준점이다.

가상공간의 중심이나, 헤드셋의 기준 높이 등을 설정한다.

Tracking Origin Mode에는 Not Specified, Device, Floor가 있는데

Not Specified로 실행하면 기본적으로 Floor모드가 실행된다.

 

VR기기를 이용한다면, Not Specified 또는 Floor모드로 실행하고

만약 시뮬레이터를 이용한다면, Device로 설정해주면된다.

 

Device로 설정하였을 경우, Camera Y Offset 값을 복사하여

XR Origin의 자식인 Camera Offset의 Y값에 동일한 값을 넣어주면 된다. 


또한, 메인 카메라의 inspector창을 살펴보면

'Tracked Pose Driver'가 있다.

이 컴포넌트는 기기의 위치와 방향을 가져와 Transform에 적용해준다.

Tracking Type의 옵션에는

Rotation Only, Position Only, Rotation And Position이 있는데

기기로 부터 받아올 값을 선택해주면 된다.

 

Update Type의 옵션은 받아온 위치와 방향을

언제 업데이트 할 것인가이다.

선택 옵션에는 Update And Before Render, Update, Before Render가 있다.

 

2. Interactor 추가하기

기기에서 컨트롤러를 사용할 수 있도록 Interactor를 생성하여야 한다.

Hierarchy뷰의 XR Origin - Camaera Offset을 오른쪽 마우스로 눌러

XR - Direct Interactor 또는 Ray Interactor를 생성한다.

*Direct Interactor와 Ray Interactor의 차이는 아래 접은글을 참고하면 된다.

더보기
왼손 : Ray Interactor / 오른손 : Direct Interactor

Direct Interactor와 Ray Interactor의 차이는

Direct Interactor는 가까이 있는 물체와의 상호작용만 가능하고

Ray Interactor는 광선이 생성되어 광선이 향해있는 곳의 물체와 상호작용 할 수 있다.

이 때, 오른쪽인지 왼쪽인지 구별하기 위해서

이름 앞에 Right/Left를 붙여주면 알아보기 쉽다.

 

생성한 Interactor를 눌러 Inspector창을 보면

XR Controller가 적용되어 있다.

 

여기에 프리셋을 적용하면 되는데,

위의 빨간색으로 동그라미 친 버튼을 눌러

Left면 'XRI Default Left Controller'로

Right면 'XRI Default Right Controller'로 설정하면 된다.

 

그리고 프리팹을 하나 만들어서

Model Prefab을 적용하면, 손이 보일 수 있다.

 

이 과정을 진행하면 Hierarchy에 XR Interaction Manager가 자동으로 생성된다.

XR Interaction Manager는 Interactor와 Interactable간에 상호작용이 가능하게 해준다.

만약 없다면 빈 게임 오브젝트를 생성하여,

'Add Component'에서 XR Interaction Manager를 추가하면 된다.

 

3. Input Action Manager 추가하기

Input Action Manager는 Input Action Asset을 활성화 해준다.

Hierarchy창에서 오른쪽 마우스를 눌러 빈 게임 오브젝트를 하나 만든다.

이 때 이름을 Input Action Manager로 해주면 알아보기 쉽다.

 

만든 Input Action Manager의 Inspector에서

Add Component에서 Input Action Manager 컴포넌트를 추가한다.

 

추가한 컴포넌트에서

샘플로 다운받은 'Starter Assets'의

'XRI Default Input Actions'를 Action Assets에 적용한다.

 

4. 잡을 오브젝트 만들기

Hierarchy에서 잡을 물체를 하나 생성하고

Inspector창에서 Add Component를 눌러

'XR Grab Interactable' 컴포넌트를 추가하면 된다.

Inspector창에서 XR Grab interactable 옵션 중

Interaction Layer Maske가 Default로 설정되어있어야 한다.

 

비슷하게, 아까 생성했던 Interactor에도 Layer Mask가 있는데

Interactor의 마스크는 Everything이 되어있어야

Interactor와 Interactable의 상호작용이 가능하다.

 

5. Play

여기까지 설정해주고 플레이버튼을 누르면

Oculus 기기에서

오브젝트와 상호작용하여

집거나, 던지는 행위가 가능하다.

댓글