티스토리 뷰

유니티를 본격적으로 다루면 피할 수 없는 것이 바로 '외부 데이터 연동'이다.

세이브 파일 부터 시작해서 데이터 파일 작성 까지, 이런 저런 요소들이 외부 데이터 연동을 활용하면 훨씬 할 수 있는 폭도 넓어지고, 수정 편의성도 높이지기 때문이다.

 

자, 그렇다면 이 '데이터 연동'을 위해서 사용할 수 있는 경로는 어떻게 정하면 될까.

사실 의외로 매우 간단하다. 유니티 상에서 미리 정해진 경로들을 제공하기 때문이다.

이에 대해서 간략하게 알아보자.

[참고 URL: https://3dmpengines.tistory.com/1745, https://sam0308.tistory.com/83]

 


Application.dataPath

읽기 전용. 프로젝트 폴더 내부의 Assets 폴더를 지정한다.

이를 통해서 Resources 폴더 외부의 디렉토리에도 접근이 가능하고, 프로젝트 파일 안에 세이브를 둘 수도 있는 등, 프로젝트 폴더 내부의 파일을 활용 가능하다.

실제로 기본적인 용도 또한 Assets 폴더 안에 미리 넣어둔 파일을 읽어들여서 

반면, PC 플랫폼 이외의 플랫폼으로는 빌드 후 실행 시 정상 작동되지 않는 문제가 발생한다.

때문에 세이브 데이터  디렉토리로는 활용하기가 난감한 편.

 

Application.streamingAssetPath

마찬가지로 읽기 전용. 프로젝트 내부의 Assets/streamingAssets 폴더를 지정한다.

streamingAssetsPath라는 점에서 알 수 있듯이, 기본적인 용도는 서버를 통해서 가져오는 파일들을 임시로 넣어두는 디렉토리라고 한다.
즉, 서버가 아직 준비가 되지 않았을 때에 사용하는 임시 경로인 셈.

 

Application.persistentDataPath

읽기 전용인 것 까지는 동일하나, 프로젝트 내부가 아니라 사용자 폴더 안의 어플리케이션 별 지정 폴더를 지정한다.

즉, 어플리케이션의 위치에 관계 없이 동일한 경로를 사용한다는 것.

동시에 '플랫폼에 관계 없이 사용 가능한' 경로이기도 하다.

본래는 어플리케이션 마다 플레이할 때 생성되는 데이터들을 모아놓기 위한 디렉토리로, 개발자가 이 경로를 사용하지 않는다고 해도 이러저런 파일들이 생성되어 유지된다.

윈도우 환경에서 기본적으로 사용되는 경로는 C:/user/[유저 네임]/LocalLow/[회사 이름]/[어플리케이션 이름] 을 사용한다.

보통 세이브 데이터를 만들 때는 이 경로를 이용한다고 한다.

아무래도 어플리케이션의 위치에 관계 없이 같은 경로를 사용하는 데다가, 플랫폼 관계 없이 오작동이 적어서 그런 듯 하다.

단, 안드로이드 환경일 경우에는 권한 보유 정도에 따라서 지정하는 경로가 바뀐다고 하니, 이 점은 주의하자.


참고로, 위 경로들을 사용해서 파일을 작성할 때에, 파일이 작성될 경로가 없다면 오류가 발생한다.

그러니 Directory.Exists(path)로 디렉토리가 있는 지 확인하고, 없으면 Directory.CreateDirectory(path)로 생성하고 파일을 작성하도록 하자.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함