VR 코딩 교육

Unity VR 튜토리얼 13편

goodworld-info 2025. 5. 31. 12:20

🎯 명중률 & 정확도 측정 시스템 만들기 – 던지기 통계 HUD 구현하기

Meta Quest 및 PCVR 대응
Unity XR Interaction Toolkit 기반
VR 게임에서 던지기 정확도, 명중률, 총 발사 수 등 통계 HUD 표시 완성

VR(가상현실)

"결과가 보여야 도전이 된다"

VR 미니게임에서 던진 횟수와 명중률을 보여주면
플레이어는 도전 의욕이 생기고 게임 몰입도와 재미가 크게 향상됩니다.

이번 튜토리얼에서는 Unity에서 발사 수, 명중 수, 정확도 계산,
그리고 게임 오버 시점에 이 데이터를 HUD 형태로 보여주는
실전용 통계 시스템을 만들어봅니다.

이 기능은 게임 UX를 풍부하게 하고,
티스토리 블로그용 콘텐츠로도 전문성을 높여주는 포인트가 됩니다.


✅ 구현할 기능 요약

항목설명
발사체 발사 시 총발사 수 +1 트리거 당길 때 카운트
타겟에 명중 시 명중 수 +1 충돌 시 이벤트 발생
정확도 (%) 계산 명중 수 ÷ 발사 수 × 100
UI에 실시간 통계 표시 점수판 옆에 텍스트로 표시
 

🛠️ 사전 준비

항목설명
Unity 버전 2021.3 이상
XR Interaction Toolkit 설치 완료
이전 구현 필요 발사체 발사 기능 + 타겟 충돌 + UI 패널 존재
 

📄 Step 1. 통계 관리 스크립트 만들기

📄 AccuracyTracker.cs 생성:


🎯 Step 2. 발사 & 명중 이벤트 연결

발사 시점 연결 (발사체 쏠 때)

BulletShooter.cs 또는 기존 발사 스크립트에 아래 코드 추가:

타겟 명중 시점 연결

TargetCollision.cs에 아래 코드 추가:

✅ 두 스크립트에 동일한 AccuracyTracker 오브젝트를 연결해 주세요.


🧾 Step 3. UI HUD 구성

  1. Canvas > Panel 또는 TextMeshPro 3개 생성
    • 발사 수 (shotText)
    • 명중 수 (hitText)
    • 정확도 (accuracyText)
  2. 위치: 화면 우측 상단 또는 게임 오버 패널에 배치
  3. 폰트 크기: 28~36
  4. 텍스트 초기값:
    • "발사 수: 0"
    • "명중 수: 0"
    • "정확도: 0.0%"

✅ AccuracyTracker 오브젝트에 각 텍스트 Drag & Drop


💡 선택 기능 (고급)

기능설명
최고 정확도 저장 PlayerPrefs 사용
명중률에 따라 색상 변화 정확도가 낮으면 빨간색, 높으면 초록색
통계 HUD 애니메이션 효과 DOTween 등 사용 가능
시간 대비 명중률 변화 그래프 Line Renderer, Chart.js (WebView 사용 시)
 

🧪 테스트 체크리스트

항목확인 여부
총 발사 시 Shot +1 ✅ 작동
타겟 맞출 시 Hit +1 ✅ 작동
정확도 계산 자동 반영 ✅ 작동
UI에 실시간 표시 ✅ 작동
게임 종료 시 통계 유지 ✅ 작동 (Time.timeScale = 0 상태에서도 유지됨)
 

📘 예시 구조


✅ 마무리 요약

기능 구현 항목완료 여부
발사 수 & 명중 수 추적 ✅ 성공
명중률 (%) 계산 ✅ 정확
UI HUD 표시 ✅ 완성
VR에서 실시간 피드백 제공 ✅ 사용 가능
확장성 확보 (랭킹, 저장 등) ✅ 구조 탄탄

📘 다음 튜토리얼 예고 – 14편

🧠 VR 게임에 난이도 시스템 추가하기 – 타겟 속도 조절 & 스테이지 구조 만들기

  • 타겟 이동 속도 자동 증가
  • 점수에 따라 스테이지 레벨 업
  • 난이도에 따른 피드백 연출