와와

Unity VR 개발환경 ( 오큘러스퀘스트2/ XR interaction Toolkit ) 본문

개발/Unity 3D

Unity VR 개발환경 ( 오큘러스퀘스트2/ XR interaction Toolkit )

정으주 2022. 7. 21. 11:43

사용기기: 오큘러스퀘스트2 ( Oculus 계정 만들고 pc와 연결해서 개발자 모드로 진행해야한다. )

1. Feature install

 

Pakage Manager: Unity Registry 에서 VR Feature를 installing 해준다.


2. Build Setting

 

안드로이드 선택 > Switch Platform

PC, 안드로이드 둘 다 오큘러스 선택해주고 Player의 안드로이드 탭에서 API lever 29 이상으로 해줘야한다.

IL2CPP과 ARM64 체크


그래픽 API 수정 ( OpenGLES3 )

오큘러스 퀘스트2가 잘 연결이 되었으면 Run Device에 저렇게 뜬다

왼쪽 위에 +버튼을 눌러서 저 패키지를 추가해준다.
"com.unity.xr.interaction.toolkit"

   

왼쪽처럼 패키지 세팅 창 열어준 담에 오른쪽처럼 체크

그리고 오른쪽 밑에 update to ~~ 버튼을 눌러서 업데이트를 해주면 저렇게 노란색 박스가 생긴다. 아직 정식 버전이 아닌 toolkit이 설치된 것.


Samples 안에 있는 것들 다 import 해준다.

...

강사님이 코드 안쓰려고 이렇게 설치를 하셨다는데 XRtoolkit 있으면 C# 코드 없어도 되나 봅니다.



다음 컨트롤러 설정!

메인카메라 삭제 + XR Origin 생성



이상태에서 실행해보면
오큘러스퀘스트로 플레이 가능하다!

( 디바이스 개발자 모드 & 링크 된 상태여야함 )

 

 

 

각 컨트롤러 인스펙터 창에 저 하마있는 아이콘을 눌러주어

왼,오 컨트롤러 설정 해주면 된다.

유니티가 임의로 정해놓은 설정임

 

 

 

Sample 폴더 안에 있는 저것을 헤드에 넣어줘야함

 

XR Origin 에 넣어줄건데
Input Action Manager 컴포넌트 추가 후 아까 그 샘플 폴더 안의 파일을 Action Assets에 넣어준다.

 

 

 

실행해보면

 

컨트롤러가 빨간색으로 나오는 것을 확인할 수 있다.

 

 

 

다음은 저 ray로 큐브를 집어보자

 

큐브 오브젝트를 추가하고 바닥도 깔아준 뒤에

큐브 오브젝트에 XR Grab Interactable 컴포넌트를 추가해준다.

 

 

 

 

실행해보면

 

ray를 쏘고 grab해서 큐브를 잡을 수 있다. 

 

 

 

 

 

 

텔레포트를 해보자

일단 맵을 넣고

텔레포트 가능 위치를 지정할 것.

 

https://assetstore.unity.com/packages/3d/environments/industrial/rpg-fps-game-assets-for-pc-mobile-industrial-set-v2-0-86679

 

RPG/FPS Game Assets for PC/Mobile (Industrial Set v2.0) | 3D 공장 | Unity Asset Store

Elevate your workflow with the RPG/FPS Game Assets for PC/Mobile (Industrial Set v2.0) asset from Dmitrii Kutsenko. Find this & other 공장 options on the Unity Asset Store.

assetstore.unity.com

이걸 받아와서 씬을 열어주고 컨트롤러를 아까처럼 설정해줬다.

 

 

길에서 텔레포트가 가능하게 하려면

길의 원본 프리펩을 찾아가서 컴포넌트 추가하면 됨 ( Prefab찾으려면 오브젝트에서 select 클릭 )

 

 

 

Teleportation Area 컴포넌트 추가해준다.

 

 

 

Locomotion System 컴포넌트를 생성해주어야함

 

 

 

 

플레이해서 Ray를 길에 가져다 대고 Grab하면 텔레포트 이동을 한다.

 

 

 

 

 

이제 왼손으로 걸어다니고 오른손으로 회전을 해보자

 

 

Locomotion System 컴포넌트 인스펙터에 Right Hand Snap Turn Action의 Use Reference를 체크해주고

XRI RightHandLocomotion/Turn을 넣어준다.

 

실행해보면 오른손 컨트롤러로 방향 조절 가능하다!

 

또, Locomotion System 컴포넌트 인스펙터에 Continuous Move Provider(Action-based) 컴포넌트 추가 후

LeftHand Move Action 체크 후 XRI LeftHand Locomition/Move 를 넣어준다.

 

실행하면 왼손으로 이동 가능함

 

 

돌아다니기 위해선 물리 작용을 해야하므로 

collider와 Rigidbody를 추가해준다.

 

 

 

 

 

 

 

그 다음 총을 쏴보자!

 

 

큐브 오브젝트 추가 후 Grab Interactable 추가

 

 

 

XR Grab Interactable에서 이벤트를 생성해주어야함

 

hover는 물체와 물체를 부딪혔을 때

select는 ?? 버튼

active는 중지 버튼 << 추가 후 Gun 오브젝트 드래그앤드롭

 

 

캡쳐 너무 힘들다..

 

 

손으로 쥔 물체가 나와 같이 회전할 땐

컨트롤러 인스팩터의

Anchor Control을 체크해제 해주면 된다.

 

 

또 총을 쥔 순간 그 힘에 쭉 밀려나는 버그가 있는데

인풋 혼선을 막기 위해 왼쪽 오른쪽 각각을 위의 사진처럼 해주자 ( 걷기, 회전 외의 다른 기능 모두 삭제 )

 

 

 

 

이제 적의 동선을 설정해보자

 

 

Bake > Bake 버튼 클릭

 

 

enemy 오브젝트에 Nav Mesh Agent 추가

 

 

적 스크립트

+ rigidbody 추가

 

 

 

맵 레이어: BG

적 레이어: Enemy 로 설정해주고