VR 코딩 교육
Unity VR 튜토리얼 8편
by goodworld-info
2025. 5. 17.
🧤 오브젝트 잡기 & 던지기 구현 – XR Grab Interactable 완전 이해하기
초보자도 따라할 수 있는 Unity XR Interaction Toolkit 기반
Meta Quest, PCVR에서 모두 작동되는 실전 물리 인터랙션 구현법
🎯 학습 목표
- VR 컨트롤러로 오브젝트를 직접 잡고 이동할 수 있게 만들기
- 잡은 물체를 던질 수 있는 물리 기반 구조 구현
- XR Grab Interactable 컴포넌트의 핵심 기능 익히기
✅ 사전 준비
항목설명
Unity 버전 |
2021.3 LTS 이상 (2022~2023도 OK) |
XR Interaction Toolkit |
설치 완료 (패키지 매니저 or Git URL 설치) |
타겟 기기 |
Meta Quest 2/3, HTC Vive, PCVR 등 |
XR Rig 세팅 |
XR Origin + Left/Right Controller 구성 필요 |
🧱 Step 1. 잡을 수 있는 오브젝트 만들기
- Hierarchy > 3D Object > Cube 생성
- 이름: Grab_Object
- 크기: (0.2, 0.2, 0.2)
- 컴포넌트 추가:
- ✅ Rigidbody (필수 – 물리 작용)
- ✅ XR Grab Interactable
- ✅ Box Collider (자동으로 있음)
📌 Rigidbody의 Use Gravity는 활성화, Is Kinematic은 비활성화
🛠️ Step 2. XR Controller 기본 세팅 확인
- XR Origin > LeftHand Controller 선택
- 컴포넌트: XR Controller (Action-based)
- Interaction Manager는 XR Interaction Manager가 있어야 합니다
- Input System으로 설정되어 있어야 함 (설정 완료된 프로젝트 기준)
🖐️ Step 3. XR Grab Interactable 주요 설정
항목설명
Movement Type |
Velocity Tracking (던질 수 있게) |
Throw on Detach |
✅ 체크 (손에서 놓으면 물리 던지기) |
Track Position / Rotation |
✅ 체크 (손 방향 따라감) |
Attach Transform |
❌ 비워둬도 기본 위치로 자동 배치 |
✅ Step 4. 테스트 준비
- 큐브를 XR Rig 앞쪽에 배치 (Z = 1.2 정도)
- 플레이 모드에서 VR 컨트롤러로 접근
- 트리거 버튼(Grab) 을 누르면 → 큐브가 손에 붙고
- 손을 떼면 → 큐브가 자연스럽게 던져짐 (중력 적용됨)
🎮 Step 5. 던지기 반응 향상 (사운드 + 파티클)
더 리얼한 피드백을 원한다면👇
- AudioSource 컴포넌트 추가
→ 놓을 때 “퍽!” 소리 출력
- OnSelectExited() 이벤트에 파티클 생성 함수 연결
- 바닥 충돌 시 리액션 넣기 (Collision 이벤트 활용)
💡 확장 예제
기능설명
무기 던지기 |
Rigidbody + Grab → 충돌 시 적 반응 처리 |
잡는 위치 제한 |
Attach Transform 지정해서 손 위치 맞춤 |
다양한 오브젝트 잡기 |
Prefab으로 오브젝트 배열 구성 |
잡을 수 없는 오브젝트 만들기 |
XR Grab Interactable 제거 or Collider만 유지 |
📚 프로젝트 구조 예시
✅ 요약 정리
구현 기능완료 여부
오브젝트 잡기 구현 |
✅ 성공 |
던지기 물리 반응 |
✅ 가능 |
XR Grab 설정 익힘 |
✅ 숙지 |
확장 가능성 확보 |
✅ 넓음 |
📘 다음 튜토리얼 예고 (9편)
👉 VR 환경 속에서 UI 버튼 & 가상 패널 구성하기
- XR UI Canvas 구성
- VR에서 클릭 가능한 메뉴 시스템
- 실제 게임 HUD처럼 구현하는 팁까지!