캡스톤 2021.11.17
- 버튼 hovering, sound 추가
- UnityEditor 라이브러리 사용 문제
유니티에서는 설계한 프로그램을 하나의 실행파일로 빌드 할수 있는데, 빌드 과정에서 오류가 났다.
찾아보니 원인은 UnityEditor 라이브러리를 사용해서 일어난 문제였다.
유저에게 이미지를 선택하게 하는 과정에서 explorer 창이 나타난후 이미지를 선택하도록 했는데, 여기서 UnityEditor 라이브러리를 사용했다.
그런데 UnityEditor 라이브러리는 말그대로 Editor 내에서만 사용가능 한 라이브러리였다.
즉 유니티 에디터에서 프로그램을 만들때 도움을 주는 용도로 설계된 라이브러리이고 실행파일로 빌드했을때는 이 라이브러리의 함수들을 사용할수 없다.
따라서 UnityEditor를 사용한 모든 코드들을 수정 할 필요가 생겼다.
UnityEditor.AssetDatabase.RenameFile 등 과 같이 파일을 이동시키거나 이름을 바꾸거나 하는 함수들은 C# 라이브러리인 System.IO에 비슷한 함수들이 있어서 쉽게 해결했다.
문제는 explorer를 열때 사용한 함수인데, 이와 관련된 함수는 C# 라이브러리에서 찾을수 없었다.
직접 구현한다면 불가능할것 같진 않지만 디렉토리의 경로를 모두 불러와야하고, GUI도 따로 만들어야 되므로 꽤 큰 작업이 추가되는 것이다.
다행히 구글링을 통해 이런 문제에 맞딱뜨린 사람이 많다는 것을 알았고 관련된 클래스를 구현해 놓은 깃허브가 있어서 가져다 쓰는 것으로 UnityEditor 라이브러리의 함수들을 모두 대체할수 있었다.
(해당 깃허브 링크: https://github.com/quangdungtr/UnityStandaloneFileBrowser)
UnityEditor 라이브러리를 사용하지 않고 다시 쓰인 코드: