오늘은 Oculus Interaction SDK와 핸드트래킹을 사용해 위아래로 움직일 수 있는 레버 기능을 만들어 보도록 하겠습니다!
==> 현재 사용하려는 조이스틱은 위 사진처럼 구성이 되어 있습니다.
이제 제가 하려는 것은 레버 머리 부분을 잡고 위아래로 움직이는 기능을 넣고 싶습니다.
간단하게 테스트를 위해 Meta XR Interaction SDK OVR Samples -> Example Scenes-> HandGrabUseExamples 씬 안에 있는 OVRCameraRig 프리펩을 가져옵니다
자 그러면 이제 레버를 손으로 잡고 인터렉션을 하기 위해 위 사진과 같이 적절한 콜라이더와 Rigidbody, Grabbable, Hand Grab Interactable 컴포넌트들을 넣고 한번 실행해 봅시다.
성공적으로 레버가 손에 잡히는 모습을 볼 수 있습니다.
하지만 제가 원하는 건 레버 중심으로 고정이 되어있고 각도를 고정하여 실제 레버를 손으로 잡고 움직이는 것처럼 상호작용 하기를 원합니다.
따라서 이제 스틱에 Pivot을 설정해 주고 Pivot을 기준으로 각도도 조절하여 실제 레버가 움직이는 것처럼 상호작용 하게 만들어 보겠습니다.
==> 먼저 빈 오브젝트를 만들어, 위치를 지정해 줍니다.
그러면 아까 스틱 오브젝트에 One Grab Rotate Transformer 컴포넌트를 추가하고 Rotation Axis를 Right로 설정을 해줍니다.
Rotation Axis의 속성값들
- Right : 객체의 오른쪽 방향을 기준으로 회전. 일반적으로 X축에 해당
- Up : 객체의 위쪽 방향을 기준으로 회전. 일반적으로 Y축에 해당
- Foward: 객체의 앞쪽 방향을 기준으로 회전. 일반적으로 Z축에 해당
저는 레버를 몸쪽 기준으로 앞 뒤로만 움직이게 제한할 것이기 때문에 Right로 설정해줍니다.
그리고 레버의 각도를 제한하기 위해 Constraints를 둘 다 체크 해주고, 적절한 Value를 설정해 줍니다.
그리고 Pivot Transform에 아까 만들어준 오브젝트를 할당해 줍니다.
마지막으로 이 설정을 Grabbable 컴포넌트의 Optionals 안에 One Grab Transformer에 할당해 줍니다.
그러고 이제 실행해 봅시다!
성공적으로 레버가 제한된 각도에서 움직이는 모습!!
글 내용 중에 틀린 것이 있거나 궁금한 것이 있다면 댓글 남겨주세요! 봐주셔서 감사합니다!
'Unity > VR' 카테고리의 다른 글
Unity-Movement와 오큘러스 메타 기기를 이용한 풀바디 트래킹!(IOBT, UNITY,C#)(4) (0) | 2024.03.12 |
---|---|
Unity-Movement와 오큘러스 메타 기기를 이용한 풀바디 트래킹!(IOBT, UNITY,C#)(3) (3) | 2024.02.25 |
Unity-Movement와 오큘러스 메타 기기를 이용한 풀바디 트래킹!(IOBT, UNITY,C#)(2) (0) | 2024.02.25 |
Unity-Movement와 오큘러스 메타 기기를 이용한 풀바디 트래킹!(IOBT, UNITY,C#)(1) (1) | 2024.02.25 |