Unity에서 게임을 개발할 때, 플레이어 데이터를 저장하고 불러오는 것은 매우 중요합니다. 이번 글에서는 Unity에서 플레이어 데이터를 JSON 파일로 저장하고 불러오는 방법에 대해 알아보겠습니다.
플레이어 데이터 클래스 생성하기
먼저, 플레이어 데이터를 저장할 클래스를 생성합니다. 이 클래스는 SerializableAttribute를 적용하여 직렬화 가능하도록 만들어야 합니다.
using System;
[Serializable]
public class PlayerData
{
public int level;
public int experience;
public int gold;
}
위 코드에서는 level, experience, gold를 저장할 수 있는 PlayerData 클래스를 생성하였습니다.
JSON 파일로 저장하기
PlayerData 클래스의 객체를 JSON 파일로 저장하기 위해서는, JsonUtility.ToJson() 함수를 사용합니다. 이 함수는 지정된 객체를 JSON 문자열로 변환합니다.
using System.IO;
using UnityEngine;
public class SaveManager : MonoBehaviour
{
private PlayerData playerData = new PlayerData();
public void Save()
{
string path = Application.persistentDataPath + "/playerdata.json";
string json = JsonUtility.ToJson(playerData);
File.WriteAllText(path, json);
}
}
위 코드에서는 Save() 함수를 생성하여, Application.persistentDataPath 경로에 playerdata.json 파일을 생성합니다. 그리고 JsonUtility.ToJson() 함수를 사용하여 playerData 객체를 JSON 문자열로 변환한 후, File.WriteAllText() 함수를 사용하여 파일에 쓰는 작업을 수행합니다.
JSON 파일에서 불러오기
이제 저장한 JSON 파일에서 플레이어 데이터를 불러오는 방법에 대해 알아보겠습니다. 이를 위해서는, JsonUtility.FromJson() 함수를 사용합니다. 이 함수는 JSON 문자열을 지정된 객체로 변환합니다.
using System.IO;
using UnityEngine;
public class LoadManager : MonoBehaviour
{
private PlayerData playerData = new PlayerData();
public void Load()
{
string path = Application.persistentDataPath + "/playerdata.json";
string json = File.ReadAllText(path);
playerData = JsonUtility.FromJson<PlayerData>(json);
}
}
위 코드에서는 Load() 함수를 생성하여, Application.persistentDataPath 경로에서 playerdata.json 파일을 읽어들입니다. 그리고 File.ReadAllText() 함수를 사용하여 파일의 내용을 읽어들인 후, JsonUtility.FromJson() 함수를 사용하여 JSON 문자열을 PlayerData 객체로 변환합니다.
결론
Unity에서 플레이어 데이터를 JSON 파일로 저장하고 불러오는 방법에 대해 알아보았습니다. 이를 이용하여 게임에서 필요한 데이터를 쉽게 저장하고 불러올 수 있습니다.
'Unity' 카테고리의 다른 글
Unity - 씬 전환 시 파괴되지 않는 오브젝트 (0) | 2023.04.03 |
---|---|
Unity에서 Resources 클래스 사용하기 (0) | 2023.03.27 |
Unity 카메라(Camera) 컴포넌트 (0) | 2023.03.25 |
Unity Navigation Component - 네비게이션 (0) | 2023.03.25 |
Unity 스크립터블오브젝트 : ScriptableObject (0) | 2023.03.24 |