-
유니티 데이터 저장/불러오기 - Json 데이터 저장/불러오기Unity 2024. 1. 22. 11:20반응형
[내용]
안녕하세요
오늘은 유니티 데이터 저장/불러오기 하는 방법입니다.
[변수]
#region 변수 [Header("=====> 파일 설정 <=====")] [SerializeField] private string gameDataFileName = "DataFile"; private string gameDataFilePath; #endregion // 변수
- 파일 이름 변수
- 데이터 파일이 저장될 주소를 담을 변수
[초기화]
/** 초기화 */ private void Start() { gameDataFilePath = Path.Combine(Application.dataPath + "/SaveData/", gameDataFileName); // 게임 데이터 로드 LoadGameData(); }
- Path.Combine() 을 이용해 주소를 저장합니다.
- 게임이 시작되면 저장된 데이터를 가져오기 위해 LoadGameData()를 실행합니다
[SaveData]
[System.Serializable] public class SaveData { // 데이터 }
- 데이터 저장 공간
[데이터 저장]
/** 게임 데이터 저장 */ public void SaveGameData() { SaveData data = new SaveData(); // 데이터 가져오기 // data.데이터 = 인게임 데이터 string json = JsonUtility.ToJson(data, true); File.WriteAllText(gameDataFilePath, json); }
- gameDataFilePath에 있는 File에 json 기록
[데이터 불러오기]
/** 게임 데이터 로드 */ public bool LoadGameData() { SaveData data = new SaveData(); if (!File.Exists(gameDataFilePath)) { Debug.Log(" 불러올 데이터가 없음 "); return false; } else { string loadJson = File.ReadAllText(gameDataFilePath); data = JsonUtility.FromJson<SaveData>(loadJson); // 저장 if(data != null) { // 데이터 가져오기 // 인게임 데이터 = Data.데이터 } Debug.Log(" 데이터를 불러왔습니다. "); return true; } }
- 파일이 있는지 검사하고 있으면 데이터를 가져옵니다.
※ PlayerPrefs를 이용한다면 Json으로 저장/불러오기 할때 좀더 쉽게 할 수 있을거 같다.
※ 코드를 응용하여 자신만의 코드로 만들어보자!반응형'Unity' 카테고리의 다른 글
유니티 움직임 구현 - 플레이어 이동 및 점프, 1인칭 시점 (0) 2024.01.25 유니티 인벤토리 - 인벤토리 시스템 (0) 2024.01.23 유니티 DOTween - 알림창 만들기 (0) 2024.01.18 유니티 카메라 확대,축소 / 마우스 드래그 - 카메라 이동 제한 (0) 2024.01.16 유니티 마우스 드래그 - 카메라 이동 (0) 2024.01.14