VR 코딩 교육

Unity로 만드는 초보자용 VR 코딩 게임 튜토리얼 5편

goodworld-info 2025. 4. 14. 16:11

학습 데이터 저장 & 로드 시스템 구현하기

가상현실(VR)

 

VR 코딩 학습 콘텐츠를 제작할 때, 사용자의 학습 점수와 미션 완료 여부를 앱에 저장하고 다음에 이어서 학습할 수 있는 시스템은 필수입니다. 이번 튜토리얼 5편에서는 Unity의 PlayerPrefs를 활용해 점수와 미션 데이터를 저장/불러오기하는 방법을 알려드립니다. 이 기능만 적용해도 교육용 VR 게임의 완성도가 확실히 높아지고, 사용자 학습 데이터를 관리할 수 있어 실제 교육 현장에도 활용하기 좋습니다.


🎯 목표

  • 점수와 미션 클리어 여부를 앱에 저장
  • 게임 종료 후에도 데이터 유지
  • 앱 재실행 시 데이터 불러오기
  • 리셋 기능 추가

🛠️ 1단계: 점수 데이터 저장 & 불러오기

📦 ScoreData.cs 스크립트 작성

using UnityEngine;
using TMPro;

public class ScoreData : MonoBehaviour
{
    public TextMeshProUGUI scoreText;
    private int score;

    void Start()
    {
        LoadScore();
    }

    public void AddScore(int amount)
    {
        score += amount;
        scoreText.text = "점수: " + score;
        PlayerPrefs.SetInt("Score", score); // 점수 저장
    }

    public void LoadScore()
    {
        score = PlayerPrefs.GetInt("Score", 0); // 기본값 0
        scoreText.text = "점수: " + score;
    }

    public void ResetScore()
    {
        score = 0;
        PlayerPrefs.SetInt("Score", score);
        scoreText.text = "점수: " + score;
    }
}

 

✅ 사용법

  • 점수 획득 시 AddScore() 호출
  • 시작할 때 LoadScore() 실행
  • 초기화 버튼 클릭 시 ResetScore() 실행

🎮 2단계: 미션 클리어 여부 저장

📦 MissionClearData.cs 스크립트 작성

✅ 사용법

  • 미션 완료 시 ClearMission("Mission1")
  • 시작 시 CheckMissionStatus("Mission1")
  • 리셋 시 ResetMission("Mission1")

📦 3단계: UI 버튼으로 데이터 관리하기

✅ 점수 초기화 버튼

  • 버튼 추가 → OnClick()에 ResetScore() 연결

✅ 미션 초기화 버튼

  • 버튼 추가 → OnClick()에 ResetMission("Mission1") 연결

📈 4단계: VR 앱 껐다 켜도 데이터 유지 확인

  1. 앱 실행 → 점수 획득
  2. 앱 종료 후 다시 실행
  3. 점수와 클리어 상태 유지 확인

✅ PlayerPrefs는 내부 저장소에 값이 남아있어 앱을 꺼도 데이터 유지 가능


📊 5단계: 학습 데이터 총집계 & 화면 표시

📦 TotalProgress.cs 스크립트 예시

✅ 이렇게 하면 학습자가 지금까지 수행한 결과를 한눈에 확인 가능


📌 6단계: 데이터 삭제 기능 (앱 초기화용)

PlayerPrefs 전체 삭제

 

앱 초기화 버튼이나 개발자 테스트용으로 활용 가능


📘 다음 편 예고 (튜토리얼 6편)

  • 완성된 VR 학습 콘텐츠 빌드 & Meta Quest로 배포하기
  • APK 파일로 변환해 VR 헤드셋에서 실행하는 법
  • VR 앱스토어 업로드 과정 안내

✅ 결론

이번 튜토리얼에서는 VR 코딩 학습 콘텐츠의 핵심 기능인 ‘학습 데이터 저장 & 불러오기 시스템’을 구축해봤습니다.
이 기능이 있어야 VR 교육 콘텐츠가 게임 수준을 넘어서 진짜 학습용 플랫폼으로 완성됩니다.