데이터 불러오는 부분
public SaveData LoadData()
{
DataSaveManager dsm = new DataSaveManager();
if (Application.platform == RuntimePlatform.Android)
{
Debug.Log("안드로이드");
return dsm.LoadGameData2();
}
Debug.Log("PC");
return dsm.LoadGameData();
}
//안드로이드
public SaveData LoadGameData2()
{
string filePath = "file:///"+Application.persistentDataPath + "/data.json";
SaveData saveData;
Debug.Log("파일검색:"+filePath);
WWW www = new WWW(filePath);
while(!www.isDone) {}
string dataAsJson = www.text;
Debug.Log(dataAsJson);
Debug.Log(dataAsJson != "");
if (dataAsJson != "") {
Debug.Log(dataAsJson);
saveData = JsonUtility.FromJson<SaveData> (dataAsJson);
} else
{
saveData = new SaveData();
}
return saveData;
}
여러가지 방법이 있지만 위처럼 해야지 정상적으로 되더라
www에 while을 사용하지 않고 IEnumerator를 사용하는 경우도 있었는데 데이터의 리턴을 받는 부분에서 PC와 동일한 방식으로 하고싶어서 while을 사용하여 기다려주었음.
데이터 저장하는 부분
public static void SaveData()
{
DataSaveManager dsm = new DataSaveManager();
dsm.SaveGameData(saveData);
}
public void SaveGameData(SaveData saveData) {
Debug.Log("파일 저장!");
string dataAsJson = JsonUtility.ToJson (saveData);
Debug.Log(dataAsJson);
string filePath = Application.persistentDataPath + "/data.json";
Debug.Log(Application.persistentDataPath + "/data.json");
Debug.Log(Application.dataPath + gameDataProjectFilePath);
File.WriteAllText (filePath, dataAsJson);
}
이것말고도 streaming asset에다가 데이터를 넣고 입출력하는 방법으로 시도해보았는데 데이터를 쓰는 부분에서 정상적으로 처리가 안되었다.
streaming asset에다가 데이터를 넣으면 Application.streamingAssetsPath로 접근을 해야하고
어플리케이션 데이터를 저장할때는 Application.persistentDataPath에다가 해주는게 맞는 것 같다.
Application.persistentDataPath
When you publish on iOS and Android, persistentDataPath points to a public directory on the device. Files in this location are not erased by app updates. The files can still be erased by users directly.
Application.streamingAssetsPath
The path to the StreamingAssets folder (Read Only).
Streaming Asset은 데이터를 읽는것밖에 되지 않아서 위의 말대로 게임 데이터는 마음대로 수정이 가능한 persistentDataPath에다가 읽기, 쓰기를 하는 것이 맞다.
맥에서 데이터 경로로 접근하기 위해서는 추가적인 환경설정이 필요하다. 아래 글을 참고하자
'Unity' 카테고리의 다른 글
유니티 도전과제 구현 (0) | 2019.01.30 |
---|---|
유니티 사운드 미리 불러오기 (0) | 2019.01.30 |
유니티 모펍 광고 페이스북 네트워크 연동 (0) | 2019.01.27 |
안드로이드 어플리케이션 APK 키파일 생성 (0) | 2019.01.06 |
유니티 모펍 광고 배너 호출 속도 문제 (0) | 2018.12.31 |