유니티) oculus VR 개발_(컨트롤러로 ui 인터랙션 하기)
유니티에서 window > packageManager 에서 oculus integration 에셋을 다운받는다
해당 에셋은 에셋스토어에서 무료로 다운로드하면된다
에셋이 임포드가 되면 사용가능한 샘플 씬들이 많이 있는데 참고 가능한 기능들을 확인할수있다
assets > oculus > vr > prefabs 에 들어가면 바로 사용가능한 프리팹을 볼수있다
이걸 사용해서 기본적인 카메라와 컨트롤러를 사용할것이다.
빈 씬에 OVRCameraRig를 넣어주고 HandAnchor의 하위에 OVRControllerPrefab 을 넣어준다
OVRCameraRig를 통해서 일반적인 vr 카메라 기능을 쓸수있고
OVRControllerPrefab을 통해 컨트롤러를 사용할수있다.
각 손의 anchor에 컨트롤러를 넣어 주었으니 왼손, 오른손을 구분해야한다
인스펙터에서 controller를 L, R Touch로 설정하여 컨트롤러를 구분해준다.
그 다음으로 컨트롤러와 인터랙션되는 ui 설정을 할것이다
스크립트를 따로 추가해서 만들수도 있지만 이미 있는 프리팹을 사용할것이다
assets > oculus > sampleFramework 에서 UIHelpers 프리팹을 가져다 씬에 넣는다
위 프리팹은 오큘러스 브이알 용 input module이 들어있고 raycast 기능이 들어있다
해당 프리팹 하위에서 eventSystem을 보면 OVRInputModule이 있는데 보면
raycast의 시작점 위치를 rayTransform 에 넣어서 사용할수도 있고
JoyPadClickButton을 보면 컨트롤러에서 어떤 버튼의 인풋을 클릭으로 인식할지 고를수있다.
indexTrigger로 설정해주면 오큘러스 컨트롤러에서 검지 트리거를 눌렀을때 클릭으로 인식한다.
이벤트 시스템을 설정하였고 다음은 canvas에서 레이케스트 인식을 vr용으로 바꿔야한다
캔버스를 생성하면 기본적으로 graphicRaycast로 되어있다.
해당 컴포넌트를 지우고 OVRRaycast로 변경한다.
Blocking Object나 Mask를 통하여 레이가 적용되는것들을 설정해줄수있다
기본세팅은 everything이다
이렇게 기본 세팅을 해주고나서 일반적으로 ui를 생성했던것처럼 똑같이
button이나 slider bar처럼 인터랙션 가능한 ui를 생성하고 인터랙션을 주면 vr에서도 똑같이 컨트롤러로 인터랙션이 가능하다
예전에 썼는데 더 자세하게 적어봤다
끗