유니티와 Json
게임을 개발하다 보면 데이터를 저장하고 불러와야 할 때가 많다. 유니티에서는 Json 형식으로 데이터를 쉽게 저장하고 불러올 수 있는 기능을 제공하므로 이를 잘 활용하면 관리하기가 수월해진다. Json은 데이터를 키-값 쌍으로 구조화해 가독성이 좋고, 쉽게 파싱할 수 있는 형식이다. 유니티에서는 JsonUtility 클래스를 통해 Json을 쉽게 다룰 수 있다.
1. JsonUtility를 이용한 Json 변환
Unity는 JsonUtility라는 유틸리티 클래스를 제공해 C# 객체를 Json 형식으로 변환할 수 있다.
using UnityEngine;
[System.Serializable]
public class PlayerData
{
public string playerName;
public int score;
}
public class JsonExample : MonoBehaviour
{
void Start()
{
PlayerData playerData = new PlayerData
{
playerName = "Player1",
score = 100
};
// 객체를 Json으로 변환
string jsonData = JsonUtility.ToJson(playerData);
Debug.Log("Json 데이터: " + jsonData);
// Json을 객체로 다시 변환
PlayerData loadedData = JsonUtility.FromJson<PlayerData>(jsonData);
Debug.Log("불러온 데이터: " + loadedData.playerName + ", " + loadedData.score);
}
}
설명
- JsonUtility.ToJson : C# 객체를 Json 문자열로 변환해준다.
- JsonUtility.FromJson : Json 문자열을 C# 객체로 변환해준다.
2. Json 파일로 저장하기
Json 데이터를 파일로 저장하는 방법이다. 아래 코드는 Json 데이터를 로컬 파일에 저장하는 방법을 보여준다.
using System.IO;
using UnityEngine;
public class JsonFileExample : MonoBehaviour
{
private string filePath;
void Start()
{
filePath = Application.persistentDataPath + "/playerData.json";
// 데이터 저장하기
PlayerData playerData = new PlayerData { playerName = "Player1", score = 100 };
SaveData(playerData);
}
void SaveData(PlayerData data)
{
string jsonData = JsonUtility.ToJson(data);
File.WriteAllText(filePath, jsonData);
Debug.Log("Json 파일로 저장됨: " + filePath);
}
}
설명
- File.WriteAllText : 지정된 경로에 Json 데이터를 파일로 저장한다.
- Application.persistentDataPath : 플랫폼에 상관없이 사용할 수 있는 데이터 경로를 제공한다.
마무리
이와 같이 Unity에서 Json 데이터를 사용하면 게임 데이터를 파일로 쉽게 저장할 수 있다. Json 포맷은 가볍고 사람이 읽기 쉬워 데이터를 다루기 편리하다는 장점이 있다.
'Unity > 정보' 카테고리의 다른 글
[Unity 유니티] 유니티에서 Json으로 데이터 관리하기 - AES 암호화 / 복호화 (3) (0) | 2024.10.29 |
---|---|
[Unity 유니티] 유니티에서 Json으로 데이터 관리하기 - 불러오기 / 읽기 (2) (0) | 2024.10.29 |
[Unity 유니티] 하드 코딩(Hard Coding)을 지양해야 되는 이유 (0) | 2024.10.28 |
[Unity 유니티] 오브젝트 풀링 (Object Pooling) (0) | 2024.10.28 |
[Unity 유니티] 싱글톤 패턴 (Singleton) (1) | 2024.10.28 |