유니티를 활용해서 프로젝트를 진행하다보면 어떤 정보를 어딘가에 저장하고 싶을 때가 있다.
이런 기능은 굉장히 빈번하게 쓰이다보니까 유니티에서 이미 기능을 마련해두었다.
순서는 다음과 같다.
1. using System.IO; 를 적어준다.
여기서 IO는 input과 output을 줄여쓴 것으로 유니티 상에서 입출력 기능을 사용하겠다는 뜻이다.
이렇게 되면 File이라는 클래스에 접근하여 다양한 기능들을 사용할 수 있다.
2. File 클래스 사용하기
위의 using을 적어줬다면 이제 스크립트 상에서 File이라고 적은 뒤 점(.)을 찍어주면 다양한 명령어들이 나타나는 것을 볼 수 있다.
해당 내용은 유니티의 공식 문서에서도 살펴볼 수 있다.
처음 해당 기능을 사용할 때는 4가지 메소드만 알아도 충분하다.
- File.Exists(string path)
입력된 경로에 파일이 존재하는지를 bool값으로 반환
- File.Delete(string path)
입력된 경로에 존재하는 해당 파일을 삭제
- File.WriteAllText(string path, string contents)
입력된 경로에 입력된 문자열 컨텐츠를 텍스트형태의 파일로 저장
- File.ReadAllText(string path)
입력된 경로에 존재하는 텍스트형태의 파일을 불러옴.
이 밖에도 ReadAllBytes 등도 존재하는데 별차이는 없고 바이트형태로 저장한다는 정도의 차이이다.
3. 경로의 설정
위의 메소드들의 공통점은 전부 path가 존재한다는 것인데
초보자의 경우는 이 path를 어떻게 설정해야 좋을지도 많은 고민이 될 수 있다.
이럴때 나는 무조건 Application.persistentDataPath 를 사용하라고 권장한다.
단순하게,
string path = Application.persistentDataPath;
이렇게 써서 경로를 생성한다음에 path를 사용해주면 된다.
해당 경로는 유니티가 기본적으로 생성하는 프로젝트별 폴더이므로,
PC환경이든 모바일환경이든 상관없이 가장 편하게 접근할수있는 경로이다.
다만, File의 메소드를 사용할 때 매개변수로 입력되는 path는 단순히 경로 뿐만아니라 저장될 파일의 이름까지 설정해줘야 관리하기가 편하다.
따라서 예를 들면,
string path = Application.persistentDataPath + "/";
string fileName = "SaveFile";
이런식으로 Application.persistentDataPath 뒤에다가 / 를 하나 더 추가해서 path 변수를 설정해주고
저장할 파일의 이름을 담당할 fileName 변수를 하나 생성해서 이름을 정해준 뒤
path + fileName 을 매개변수로 한번에 넣어주는 것이 좋다.
좀 더 체계적으로 관리하고 싶다면 데이터매니저 스크립트 같은 것을 별도로 만들어서
여러개의 파일을 분리하면서 각각 저장해주면 좀 더 효율적으로 사용할 수 있게 된다.
File 기능을 통해서 문자열만 외부에 저장할 수 있다고 생각하는 경우가 많은데,
문자 이외에도 사진이나 동영상도 저장할 수 있으며,
fileName 자체에 확장자명을 같이 넣어줘서 원하는 형식으로 저장할 수도 있다.
'유니티 Unity > 유니티 기능 구현' 카테고리의 다른 글
[유니티] Json으로 저장 불러오기 구현하기 2 - Unity Save And Load (0) | 2022.02.04 |
---|---|
[유니티] Json으로 저장 불러오기 구현하기 1 - Unity Save And Load (1) | 2022.01.27 |
[유니티] 초보자를 위한 제이슨을 사용하는 방법 (3) | 2022.01.15 |
[유니티] 레이캐스트 총정리 - Unity Raycast (0) | 2022.01.12 |
[유니티] 비디오플레이어로 UI에서 동영상 재생하기 (1) | 2022.01.06 |
댓글