🎓 블로그 소개: 이 블로그는 가상현실(VR)과 인공지능(AI)을 활용한 실습형 교육 콘텐츠를 제공합니다. 모든 콘텐츠는 직접 제작되며, 초보자도 쉽게 따라할 수 있도록 구성되어 있습니다.
본문 바로가기
VR 코딩 교육

Unity VR 튜토리얼 12편

by goodworld-info 2025. 5. 31.

🏆 VR 게임 점수 저장 & 랭킹 시스템 만들기 – 로컬 기록으로 최고 점수 관리하기

XR Interaction Toolkit 기반
Meta Quest / PCVR VR 미니게임에 필수인
점수 저장, 최고 기록 갱신, UI에 표시하는 방법 완전정복

가상현실(VR)

"게임의 몰입감은 ‘경쟁’에서 시작된다"

VR 게임은 시각적 체험만큼이나 성취감경쟁 요소가 중요합니다.
특히 미니게임에서는 내 최고 점수가 얼마인지,
지난 기록을 넘었는지 확인할 수 있어야 플레이어의 몰입감이 올라갑니다.

이번 튜토리얼에서는 PlayerPrefs를 사용해

  • VR에서 점수를 저장하고,
  • 최고 점수를 비교하고,
  • 랭킹 UI로 보여주는 로컬 랭킹 시스템을 구현합니다.

✅ 목표 기능 요약

  • 게임 플레이 중 얻은 점수를 저장
  • 이전 기록보다 높으면 최고 점수 갱신
  • 게임 오버 시 점수와 최고점수 함께 표시
  • UI로 랭킹 정보 출력

📦 준비 사항

항목설명
Unity 버전 2021.3 이상
XR Toolkit 설치 완료
이전 튜토리얼 구조 연동 10~11편까지 구현된 상태 (점수판 & 게임오버 패널)
 

🛠️ Step 1. 최고 점수 저장용 스크립트 만들기

📄 ScoreManager.cs 작성:


🧾 Step 2. UI 구성 (게임 중 & 종료 시 보여줄 랭킹)

  1. Canvas > TextMeshPro – UI Text 2개 생성
  2. 이름: CurrentScoreText, BestScoreText
  3. 각각 "점수: 0", "최고 점수: 0" 로 초기화
  4. 적절한 위치에 배치 (게임 오버 패널에도 복사해두면 좋아요)

✅ 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 구현하기

  • 총 발사 수 / 명중 수 카운트
  • 정확도 (%) 계산
  • 게임 종료 시 통계 제공