VR 코딩 교육
Unity VR 튜토리얼 12편
goodworld-info
2025. 5. 31. 11:13
🏆 VR 게임 점수 저장 & 랭킹 시스템 만들기 – 로컬 기록으로 최고 점수 관리하기
XR Interaction Toolkit 기반
Meta Quest / PCVR VR 미니게임에 필수인
점수 저장, 최고 기록 갱신, UI에 표시하는 방법 완전정복
"게임의 몰입감은 ‘경쟁’에서 시작된다"
VR 게임은 시각적 체험만큼이나 성취감과 경쟁 요소가 중요합니다.
특히 미니게임에서는 내 최고 점수가 얼마인지,
지난 기록을 넘었는지 확인할 수 있어야 플레이어의 몰입감이 올라갑니다.
이번 튜토리얼에서는 PlayerPrefs를 사용해
- VR에서 점수를 저장하고,
- 최고 점수를 비교하고,
- 랭킹 UI로 보여주는 로컬 랭킹 시스템을 구현합니다.
✅ 목표 기능 요약
- 게임 플레이 중 얻은 점수를 저장
- 이전 기록보다 높으면 최고 점수 갱신
- 게임 오버 시 점수와 최고점수 함께 표시
- UI로 랭킹 정보 출력
📦 준비 사항
항목설명
Unity 버전 | 2021.3 이상 |
XR Toolkit | 설치 완료 |
이전 튜토리얼 구조 연동 | 10~11편까지 구현된 상태 (점수판 & 게임오버 패널) |
🛠️ Step 1. 최고 점수 저장용 스크립트 만들기
📄 ScoreManager.cs 작성:
🧾 Step 2. UI 구성 (게임 중 & 종료 시 보여줄 랭킹)
- Canvas > TextMeshPro – UI Text 2개 생성
- 이름: CurrentScoreText, BestScoreText
- 각각 "점수: 0", "최고 점수: 0" 로 초기화
- 적절한 위치에 배치 (게임 오버 패널에도 복사해두면 좋아요)
✅ ScoreManager.cs에 Drag & Drop으로 연결
🧪 Step 3. 점수 증가 테스트
- 타겟을 맞출 때 ScoreManager.AddScore(10); 실행되게 변경
- 예시: TargetCollision.cs에서 점수 업데이트를 아래처럼 수정
🧠 Step 4. PlayerPrefs 확인 방법
기능확인 방법
최고 점수 저장됨 | 플레이 후 Application.persistentDataPath 경로 확인 |
게임 재시작해도 점수 유지됨 | ✅ PlayerPrefs는 자동 저장됨 |
최고 점수 초기화 | PlayerPrefs.DeleteKey("BestScore"); 추가로 가능 |
🖥️ Step 5. 랭킹 UI 예쁘게 꾸미기 (선택 사항)
UI 디자인 팁:
요소설명
폰트 크기 | 32~48 추천 |
텍스트 정렬 | 가운데 정렬 |
컬러 차별화 | 최고 점수는 금색/노란색 |
애니메이션 효과 | 점수 증가 시 Tween 사용 가능 |
💡 확장 아이디어
기능설명
랭킹 기록 3~5개 저장 | PlayerPrefs에 Key를 여러 개 만들어 저장 |
날짜별 점수 저장 | System.DateTime.Now.ToString() 활용 |
서버에 업로드되는 순위판 | Firebase / PlayFab 연동 필요 (중급자용) |
사용자 이름과 함께 저장 | InputField + PlayerPrefs 조합 가능 |
📘 예시 구조
✅ 마무리 요약
구현 기능완료 여부
점수 저장 기능 | ✅ 성공 |
최고 기록 비교 & 갱신 | ✅ 가능 |
게임 종료 시 점수/최고점 표시 | ✅ UI로 출력 |
PlayerPrefs 활용 | ✅ 이해 완료 |
확장 가능한 로컬 랭킹 시스템 | ✅ 기본 구조 완성 |
📘 다음 튜토리얼 예고 – 13편
🎮 VR에서 던지기 정확도 체크 & 명중률 분석 HUD 구현하기
- 총 발사 수 / 명중 수 카운트
- 정확도 (%) 계산
- 게임 종료 시 통계 제공