반응형
유니티 모바일 환경에서 json 파일을 저장 불러오기 하면 Null 에러가 발생하는 문제가 생겼다.
분명히 파일에 json파일이 존재하고 에디터 환경에서 실행하면 잘 동작하는데 뭐가 문제인가...
[ContextMenu("UI Data To Json")]
string jsonData = JsonUtility.ToJson(UIDatas, true);
if (!Directory.Exists(Application.dataPath + m_path))
Directory.CreateDirectory((Application.dataPath + m_path));
string totalPath = Path.Combine(Application.dataPath + m_path, m_name);
File.WriteAllText(totalPath, jsonData);
[ContextMenu("UI Data From Json")]
TextAsset ta = Resources.Load<TextAsset>("Jsons/" + m_name);
UIDatas = JsonUtility.FromJson<UIData>(ta.ToString());
2시간의 수고 끝에 어이없는 이유를 찾아내었다.
바로 확장자명이 없었다는 것....
TextAsset으로 불러들이려면 확장자명이 .json인 것들을 찾아내야 하는데
로그를 찍어보니 그 어떠한 파일도 읽어들이지 못하고 있었다.
따라서 파일명에 .json을 추가해주어야 한다.
string jsonData = JsonUtility.ToJson(UIDatas, true);
if (!Directory.Exists(Application.dataPath + m_path))
Directory.CreateDirectory((Application.dataPath + m_path));
string totalPath = Path.Combine(Application.dataPath + m_path, m_name);
File.WriteAllText(totalPath + ".json", jsonData);
그러나 파일을 저장하고 에디터에서 refresh를 계속해도 json 파일이 보이지 않았는데...
그 이유인즉슨, Resources폴더 내부에서 경로가 시작하는 Resources.Load와는 다르게 Application.dataPath는 Asset폴더를 포함한 경로부터 시작하기 때문.
따라서 m_path를 path1/path2/dataFile.json이 아닌 /path1/path2/dataFile.json 로 변경해 주어야 원하는 결과를 얻을 수 있다.
반응형
'유니티 > 에러 리포트' 카테고리의 다른 글
[Unity] 씬 뷰에서는 멀쩡한데 게임 뷰에서 이미지가 깨질 때 해결 방법 (0) | 2023.07.18 |
---|---|
[Unity] (VFX) 오클루전이 발생할 경우 (0) | 2023.04.12 |
[Unity] A Biped was detected, but cannot... 경고 (0) | 2022.09.07 |
[Unity] failed to present d3d11 swapchain due to device reset/remove... (0) | 2022.01.09 |
[Unity] Scene Editor의 Orthographic 모드시 특정 임계값 이상 접근할 경우 오브젝트가 사라지는 현상 (0) | 2021.09.07 |