11
14

 

 

유니티에서 스크린 캡쳐를 하고, 이걸 스크린샷 폴더에 저장하고 싶다.

뭐, 유니티에서 잘 지원해주겠지 하고 막상 시도해보니까 생각보다 막히는 부분이 많았다.

 

 

문제점 1. 유니티에서 지원해주는 ScreenCapture.CaptureScreenshot()이 제대로 동작하지 않음.

 - https://docs.unity3d.com/ScriptReference/ScreenCapture.CaptureScreenshot.html

 - 유니티 자체적으로 지원하는 스크린캡쳐는 ScreenCapture.CaptureScreenshot() 라고 하는데,

   이게 문제가 많은지 커뮤니티 개발자들은 텍스쳐를 저장하는 식의 방법으로 대체 활용하고 있다.

 

문제점 2. 저장소 권한 문제.

 - 파일을 만들어서 경로에 넣는 것이기 때문에 저장소 권한이 없으면 오류가 난다.

 - 매니페스트를 추가하고 저장소 권한을 획득하자.

 - https://docs.unity3d.com/2018.3/Documentation/ScriptReference/Android.Permission.RequestUserPermission.html

 

문제점 3. 저장은 되나 갤러리에 나타나지 않음.

 - 저장까지는 잘 되고 파일이 생성되기 까지 하는데, 갤러리에 뜨지는 않는다. 이 또한 별도의 처리를 해줘야 한다.

 - https://answers.unity.com/questions/200173/android-how-to-refresh-the-gallery-.html

 

 

이러한 문제들을 반영해서 최종적으로 만든 코드는 아래와 같다.

 

 

COMMENT