EasyCastleUNITY

OVR 유니티 물체 던지기(Throw an Object) 탐구 본문

Oculus VR 탐구

OVR 유니티 물체 던지기(Throw an Object) 탐구

EasyCastleT 2023. 10. 23. 17:43

https://developer.oculus.com/documentation/unity/unity-isdk-throw-object/

 

Throw an Object | Oculus Developers

 

developer.oculus.com

이 글은 위 링크의 문서를 바탕으로 작성하였습니다.

또한  Oculus Integration SDK 57.0버전을 기준으로 작성되었습니다. 참고하여 주시기 바랍니다.  

https://easycastleunity.tistory.com/186

 

OVR 유니티 Grab Interaction (물체 잡기)

https://easycastleunity.tistory.com/185 OVR 유니티 기본 세팅 및, 손동작 테스트 https://developer.oculus.com/documentation/unity/unity-isdk-getting-started/ Getting Started with Interaction SDK | Oculus Developers developer.oculus.com 기본

easycastleunity.tistory.com

저번 포스트에서, 물체를 잡는 방법을 탐구했습니다. 이제 잡았으니 던지는 법도 탐구해보려고 합니다. 

이번에도 간단하게, 만들기 위해 Cube를 이용하여 던질 수 있는 물체를 만들어 보겠습니다. 


오브젝트에 컴포넌트 추가하기 

1. 상호작용을 할 수 있는 손들이 있는 씬을 엽니다. 

2. Hierachy 에서, Cube를 생성합니다. 

3. 큐브의 인스펙터에서 Physics Grabbable, RigidBody, Grabbable, 그리고 Hand Grab Interactrable 컴포넌트들을 추가합니다. 

4. Physics Grabbable 컴포넌트에서, 큐브의 Grabbable과 Rigidbody를 세팅해줍니다. 

 Hand Grab Interactable 컴포넌트에서, 큐브의 Physics Grabbable 을 세팅해줍니다. (Optionals 아래에 있음)

이러면 던져지는 대상이 되는 오브젝트의 세팅을 완료됩니다. 


Hands일 경우, 추가하는 컴포넌트들

1. Hierachy에서, LeftHand를 선택합니다. 

2. 프로젝트에서 HandVelocityCalculator를 검색하여 동일명의 프리팹을 찾습니다.

3. 검색하여 나온 프리팹을 LeftHand에 자식으로 부착합니다. 

4. HandVelocityCalculator 인스펙터에서 Hand Pose Input Device 컴포넌트를 찾아, Hand 변수에 LeftHand를 세팅합니다. 

5. Hierachy에서 LeftHand > HandInteractorsLeft > HandGrabInteractor

를 선택합니다. 6. 인스펙터 아래에,  Hand Grab Interactor 컴포넌트에서 Velocity Calculator 변수에 Left Hand > Hand Velocity Calculator 를 세팅합니다. 

7. 이 과정을 오른손에도 반복합니다. 8. 만든 물체가 떨어지지 않도록 테이플 같은 땅의 역할을 할 수 있는 물체 위에 배치시킵니다. 9. 실행시켜봅니다. 

 

 

controllers as hands와 controllers 방법을 사용하여도, 이 던지는 기능은 위의 과정을 따라하면 됩니다.

간단한 폭탄 모델을 구하여, 잡고 던지는 영상입니다. 여러번 시연 하기 위해, 폭탄에는 특정 높이 아래가 되면

원래 위치로 돌아오도록 스크립트를 작성하였습니다. 

 

이렇게 오브젝트 던지기 기능 탐구를 완료했습니다.