🎯 명중률 & 정확도 측정 시스템 만들기 – 던지기 통계 HUD 구현하기
Meta Quest 및 PCVR 대응
Unity XR Interaction Toolkit 기반
VR 게임에서 던지기 정확도, 명중률, 총 발사 수 등 통계 HUD 표시 완성
"결과가 보여야 도전이 된다"
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 구성
- Canvas > Panel 또는 TextMeshPro 3개 생성
- 발사 수 (shotText)
- 명중 수 (hitText)
- 정확도 (accuracyText)
- 위치: 화면 우측 상단 또는 게임 오버 패널에 배치
- 폰트 크기: 28~36
- 텍스트 초기값:
- "발사 수: 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 게임에 난이도 시스템 추가하기 – 타겟 속도 조절 & 스테이지 구조 만들기
- 타겟 이동 속도 자동 증가
- 점수에 따라 스테이지 레벨 업
- 난이도에 따른 피드백 연출
'VR 코딩 교육' 카테고리의 다른 글
Unity VR 튜토리얼 12편 (0) | 2025.05.31 |
---|---|
Unity VR 튜토리얼 11편 (0) | 2025.05.25 |
Unity VR 미니게임 만들기 튜토리얼 – 목표 맞추기 & 점수판 구현 (초보자도 가능!) (0) | 2025.05.25 |
Unity VR 튜토리얼 9편 (0) | 2025.05.17 |
Unity VR 튜토리얼 8편 (0) | 2025.05.17 |