Unity XR Interaction Toolkit 기반
Meta Quest / PCVR에서 실제 작동하는 미니게임 구현
VR 컨트롤러로 조작하고 점수판까지 연동되는 인터랙티브 게임 튜토리얼
“VR 게임을 만들고 싶다면, 미니게임부터 시작하자”
VR 콘텐츠를 직접 개발해보고 싶지만, 처음부터 방대한 프로젝트를 만드는 것은 매우 어렵습니다.
현실감 있는 인터랙션과 간단한 승패 구조가 있는 미니게임부터 시작하면
초보자도 개발의 기본기를 빠르게 익힐 수 있습니다.
이번 글에서는 Unity와 XR Interaction Toolkit을 활용해,
- VR에서 총알을 발사하고,
- 타겟을 맞추며,
- 점수를 표시하는 간단한 미니게임을 직접 만들어보는 과정을 소개합니다.
이 프로젝트는 Meta Quest 기기 및 PCVR 모두 호환되며,
Unity 입문자도 바로 따라할 수 있는 구조로 구성되어 있습니다.
✅ 목표 기능 요약
- 컨트롤러로 공격 오브젝트 발사 (Projectile)
- 타겟 오브젝트에 명중 시 충돌 이벤트 감지
- **점수판(UI Text)**에 점수를 누적 표시
- 반복 가능한 구조로 게임 루프 완성
🛠️ 개발 환경 사전 준비
Unity 버전 | 2021.3 LTS 이상 추천 (2022~2023도 OK) |
XR Plugin | XR Interaction Toolkit 설치 |
테스트 기기 | Meta Quest 2/3, HTC Vive, Oculus 등 |
UI 시스템 | Unity 기본 UI(TextMeshPro 권장) |
🎯 Step 1. 발사체(Projectile) 생성하기
- Hierarchy > 3D Object > Sphere → 이름: Bullet
- 크기: (0.05, 0.05, 0.05)
- Rigidbody 추가 → Use Gravity = false
- Tag: "Bullet" (나중에 충돌 구분용)
✅ Prefab으로 저장해두세요 (Project > Prefabs > Bullet.prefab)
✋ Step 2. 발사 스크립트 만들기
📄 BulletShooter.cs 스크립트 생성 후, VR 컨트롤러에 부착
using UnityEngine;
public class BulletShooter : MonoBehaviour
{
public GameObject bulletPrefab;
public Transform shootPoint;
public float bulletSpeed = 10f;
void Update()
{
if (OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger)) // Meta Quest 기준
{
GameObject bullet = Instantiate(bulletPrefab, shootPoint.position, shootPoint.rotation);
Rigidbody rb = bullet.GetComponent<Rigidbody>();
rb.velocity = shootPoint.forward * bulletSpeed;
}
}
}
- shootPoint: 총구 위치 (컨트롤러 앞에 빈 오브젝트로 설정)
- OVRInput은 OpenXR이 아닌 Oculus Input System입니다.
OpenXR 사용하는 경우 Input System 기반으로 교체 가능
🎯 Step 3. 타겟 오브젝트 만들기
- 3D Object > Cube → 이름: Target
- 위치: (0, 1, 5)
- Box Collider & Rigidbody (IsKinematic = true)
- Tag: "Target"
💥 Step 4. 충돌 감지 & 점수 올리기
📄 TargetCollision.cs 스크립트 추가:
✅ TextMeshProUGUI는 UI 텍스트입니다
→ Canvas에 Text UI 생성 후 이 스크립트에 연결
📊 Step 5. 점수판 UI 만들기
- Canvas 생성 → World Space
- UI > TextMeshPro - Text 추가
- 내용: "점수: 0"
- 폰트 크기: 30
- 위치: 화면 오른쪽 위쪽 부근 ((1.5, 2, 3) 등)
✅ 점수 텍스트는 TargetCollision에 Drag & Drop으로 연결
🧪 테스트 체크리스트
발사체가 컨트롤러에서 발사됨 | ✅ 작동 |
타겟에 충돌하면 파괴됨 | ✅ 확인 |
점수가 UI에 올라감 | ✅ 성공 |
반복 가능함 (게임 루프 형태) | ✅ 완성 |
💡 확장 팁
타겟이 움직이게 만들기 | Transform.Translate() 또는 NavMesh |
발사체 파티클 효과 추가 | ParticleSystem 적용 |
타이머 추가 (제한 시간 게임) | UI Timer 구성 + 게임 종료 로직 |
다단계 타겟 (점수 다르게) | Tag별 점수 차등 적용 |
이제 여러분은 VR에서 직접 발사체를 발사하고, 목표를 맞추며 점수를 표시하는 게임 구조를 만들 수 있게 되었습니다.
초보자용 튜토리얼이지만, 실제 게임 개발의 핵심 구조가 모두 담겨 있습니다.
📘 다음 튜토리얼 예고 – 11편
🎯 VR 타이머 시스템 + 게임 오버 패널 구현하기
- 제한 시간 설정
- 게임 종료 조건 추가
- 최종 점수 & 재시작 버튼 구현
'VR 코딩 교육' 카테고리의 다른 글
Unity VR 튜토리얼 12편 (0) | 2025.05.31 |
---|---|
Unity VR 튜토리얼 11편 (0) | 2025.05.25 |
Unity VR 튜토리얼 9편 (0) | 2025.05.17 |
Unity VR 튜토리얼 8편 (0) | 2025.05.17 |
Unity VR 튜토리얼 7편 – 사운드 효과 & 진동 피드백 넣기 (초보자용 실습 가이드) (0) | 2025.05.11 |