fullstack

[Unity] 디바이스 경로에 파일 입출력하기 (Application.persistentDataPath)

Unity

게임정보를 저장할 때 PlayerPrefabs를 쓰면 쉽고 편리하게 정보를 저장할 수 있지만, 조금 복잡하고 많은 데이터를 저장해야 할 때에는 PlayerPrefabs는 한계가 있습니다

이럴 때에는 xml 이나 json 파일을 만들어서 디바이스 내부에 파일로 정보를 저장하는 것이 좋습니다

 

우선 파일입출력을 사용하기위해서 다음과 같은 namespace를 추가해 줍니다

using System.IO;

 

저는 Json파일을 생성하여 저장정보를 저장하겠습니다

이를 위해서 JsonUtility를 사용하였습니다

 

디바이스의 저장경로는 Application.persistentDataPath 로 얻어오면 됩니다

 

먼저 파일을 쓰는 로직입니다

File.WriteAllText(Application.persistentDataPath + "/UserData.json", JsonUtility.ToJson(_data));

 

다음은 파일을 읽는 로직입니다

if (File.Exists(Application.persistentDataPath + "/UserData.json"))
{
    string json = File.ReadAllText(Application.persistentDataPath + "/UserData.json");
    _data = JsonUtility.FromJson<Data>(json);
}

 

위 예제는 최대한 간단하게 입출력만 한 예제이고, 보안을 위해서 파일을 저장할 떄 암호화를 해주면 더욱 좋습니다