[서문]
게임을 만드는 도중, 세이브/로드가 잘 안 먹히는 현상때문에 골머리를 앓았는데요,
실시간으로 인게임에서 데이터를 불러오고 저장하는게 잘 안 되는 현상이었습니다. (에디터 밖으로 나갔다가 들어와야 잘 먹힘)
알아본 결과 파일을 저장하는 경로는 여러개가 있고, 저는 학원에서 배운 Application.dataPath + "Resources/..."를 계속 써왔는데 Resources파일에 저장하는 리소스들은 빌드 시 패키지에 포함되는 영역이지, 읽고 쓰는 파일을 저장하는 용도로 사용하지 않는다고 합니다.
에디터 상에서는 잠시 에디터를 벗어났다가 돌아오면 저장/로드가 되지만, 빌드를 한 후에는 따로 저장할 수 없다 합니다.
아래 본문에서 여러 저장 경로와 쓰임새에 대해 알아보겠습니다.
[본문]
1) Application.dataPath
: 제가 원래 사용하고 있었던 데이터 저장 경로입니다. 읽기 전용이며, 런타임 중에 파일 수정, 작성을 할 수 없습니다.
- 저장 경로 : 프로젝트 폴더 내부(Asset)
2) Application.streamingAssetsPath (Application.dataPath + "/StreamingAssets")
: dataPath와 마찬가지로 읽기 전용이며, 런타임 시점에 여기서 파일을 수정하거나 작성할 수 없다고 합니다.
서버에서 다운받는 데이터를 아직 서버가 마련되지 않아 파일 형식으로 유니티에 포함시킬 때 사용합니다.
- 저장 경로 : 프로젝트 폴더내부(StreamingAsset)
3) Application.persistentDataPath
: 제가 원하던 쓰기 가능한 폴더의 위치입니다. 특정 운영체제에서 앱이 사용할 수 있도록 허용한 경로입니다.
- 저장 경로 : C:\Users\[user name]\AppData\LocalLow\[company name]\[product name]
(저장 경로 파일명([company name], [product name])의 이름을 바꾸는 방법은 아래 링크 걸어뒀습니다!)
* 각 저장 경로의 자세한 저장 위치는 아래 링크 블로그에서 잘 정리해두셨더군요. 아래 블로그 참고하시길 추천드립니다.
** 파일 저장 경로 파일 이름 변경 방법
'[Unity] > [Unity]' 카테고리의 다른 글
[Unity] IPointerUpHandler, IPointerDownHandler가 작동하지 않을 때 (0) | 2021.06.24 |
---|---|
[Unity] 유니티 저장 파일명 변경 방법(Project Settings) (0) | 2021.03.02 |
[Unity] Spine : 스파인 레이어(Order In Layer) 변경 코드 (1) | 2021.02.24 |
[Unity] RigidBody : 캐릭터 충돌 시 떨림 현상 (0) | 2021.02.23 |
[Unity] RigidBody : Collider를 만들었는데 벽을 통과할 때 (0) | 2021.02.22 |