VR 코딩 교육

Unity VR 튜토리얼 8편

goodworld-info 2025. 5. 17. 08:32

VR(가상현실)

🧤 오브젝트 잡기 & 던지기 구현 – 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. 잡을 수 있는 오브젝트 만들기

  1. Hierarchy > 3D Object > Cube 생성
  2. 이름: Grab_Object
  3. 크기: (0.2, 0.2, 0.2)
  4. 컴포넌트 추가:
    • ✅ Rigidbody (필수 – 물리 작용)
    • ✅ XR Grab Interactable
    • ✅ Box Collider (자동으로 있음)

📌 Rigidbody의 Use Gravity는 활성화, Is Kinematic은 비활성화


🛠️ Step 2. XR Controller 기본 세팅 확인

  1. XR Origin > LeftHand Controller 선택
    • 컴포넌트: XR Controller (Action-based)
  2. Interaction Manager는 XR Interaction Manager가 있어야 합니다
  3. Input System으로 설정되어 있어야 함 (설정 완료된 프로젝트 기준)

🖐️ Step 3. XR Grab Interactable 주요 설정

항목설명
Movement Type Velocity Tracking (던질 수 있게)
Throw on Detach ✅ 체크 (손에서 놓으면 물리 던지기)
Track Position / Rotation ✅ 체크 (손 방향 따라감)
Attach Transform ❌ 비워둬도 기본 위치로 자동 배치
 

✅ Step 4. 테스트 준비

  1. 큐브를 XR Rig 앞쪽에 배치 (Z = 1.2 정도)
  2. 플레이 모드에서 VR 컨트롤러로 접근
  3. 트리거 버튼(Grab) 을 누르면 → 큐브가 손에 붙고
  4. 손을 떼면 → 큐브가 자연스럽게 던져짐 (중력 적용됨)

🎮 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처럼 구현하는 팁까지!