본문 바로가기
Coding/Unity

[Unity] 파일 탐색기 불러오기/파일 선택

by kelina_ 2022. 8. 20.

ㄴㅇㄱ...

졸프가 끝났는데 보수 작업을 하게 됐다.

이유는 exe 추출을 하는데 UnityEditor에 문제가 생겨서!

우리는 UnityEditor을 파일 탐색기 불러오기, 파일 선택에서 사용하고 있었기 때문에 부득이하게 해당 코드를 다른 함수로 대체하게 되었다..

..........

 

아무튼 어떻게 대체했는지 알아보자.

 

Ookii.Dialogs / System.Diagnostics

처음 시도한 건 이건데 아무래도 바꿀 것 같다.

이유 == UI가 구려서.

내가 아는 일반적인 윈도우 파일 탐색기가 아니었다ㅜㅜ

 

그래도 방법을 기록해야겠지.

 

일단 Asset 폴더 안에 Plugins 폴더를 생성한 뒤 그 안에 이걸 설치해준다.

Plugins.zip
1.02MB

using FileWindow = System.Windows.Forms;

글구 이걸 선언해서 쓸거임.. 하도 Debug랑 모호하다고 겹치길래 변수(?)를 선언해줬다.

    FileWindow.OpenFileDialog OpenDialog = new FileWindow.OpenFileDialog();

이렇게 전역 변수로 선언해서 썻당..

    public void OpenExplorerButtonClick()   // 파일 탐색기 버튼 클릭시
    {
        OpenDialog.Filter = "jpg files (*.jpg) |*.jpg|png files (*.png) |*.jpg|All files  (*.*)|*.*";
        OpenDialog.FileName = "test";
        OpenDialog.Title = "Image Dialog";

        FileWindow.DialogResult dr = OpenDialog.ShowDialog();
        if (dr == FileWindow.DialogResult.OK)
        {
            string fileName = OpenDialog.SafeFileName;
            path = OpenDialog.FileName;
        }

대망의 코드.

나는 선택된 파일도 들어간 경로가 필요해서, 그걸 path로 규정해두고 썼다.

만약 선택된 파일이 제외된, 정말 폴더 경로가 필요하면 path = fileFullName.Replace(fileName, ""); 이걸 쓰면 된다.

 

그런데 UI가 정말 우리가 아는 파일 탐색기가 아니라서,

새롭게 MS에서 제공하는 WindowsAPICodePack 을 설치해서 CommonOpenFileDialog 도구 상자를 사용해보려고 한다.

 

그건 다음 포스팅에..

 

+)

WindowsAPICodePack 추가가 결국 안 됐다.

구글에 찾아보니 우리 말고도 문제가 많은 듯ㅠㅠ

결국 한참 시간이 지나서야 VistaOpenFileDialog를 찾아 성공했다!

위에서 사용한 코드랑 겹치는 부분이 많아 오히려 수월하게 수정했다. ㅎㅎ

 

https://kim-lululala.tistory.com/25?category=1020013 

 

[Unity] OpenFileDialog 말고 VistaOpenFileDialog 쓰기

https://blog.naver.com/PostView.naver?blogId=ihaneter&logNo=222497023154&categoryNo=0&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postList [참조] 유니티 File Dialog http..

kim-lululala.tistory.com

 

댓글