본문 바로가기
Programming/Unity

[Unity3D] Unity에서 Window OpenDialog 사용

by 타임박스 2020. 12. 23.
반응형


✔ C# - FileOpenDialog

유니티에서 윈도우 파일 브라우저(탐색기)를 사용하기

Window 10 디자인 FileOpenDialog, Windows.Form.dll Download



 

Unity 버튼 클릭시 파일탐색기 기능을 구현해보자

일단 먼저 dll이 필요하다. 아래 첨부된 파일들을 다운로드 받아 Unity의 Asset/Plugins 폴더안에 넣자.

System.Windows.Forms.dll
5.64MB

System.Windows.Forms.dll은 OpenDialog API를 지원해주는 dll이다.

유니티와 .Net 버전이 업그레이드 되면서 Ookii.Dialogs.dll이 필요 없어졌다.

유니티 플레이어 설정에서 .NetFramwork로 설정해야한다 (버전마다 차이 있음 구버전 -> .NetFramework 4.X)

보통 System.Windows.Forms.dll에서는 아래 형태로 많이 사용을 한다.

OpenFileDialog dialog = new OpenFileDialog();

아래 예제 샘플 코드이다.

using UnityEngine;
using System.IO;
using System.Windows.Forms;

public class FileOpenDialog : MonoBehaviour
{
    OpenFileDialog OpenDialog;
    Stream openStream = null;

    private void Start()
    {
        OpenDialog = new OpenFileDialog();
        OpenDialog.Filter = "jpg files (*.jpg) |*.jpg|png files (*.png) |*.jpg|All files  (*.*)|*.*";
        OpenDialog.FilterIndex = 3;
        OpenDialog.Title = "Image Dialog";
    }
    
    public string FileOpen()
    {
        if (OpenDialog.ShowDialog() == DialogResult.OK)
        {
            if ((openStream = OpenDialog.OpenFile()) != null)
            {
            	openStream.Close();
                return OpenDialog.FileName;
            }
        }
        return null;
    }

    public void OnGUI()
    {
        if (GUI.Button(new Rect(100, 100, 100, 50), "FileOpen"))
        {
            string fileName =  FileOpen();

            if(!string.IsNullOrEmpty(fileName))
                Debug.Log(fileName);
            
        }
    }
}

 

유니티 버전마다 차이가 있는데 특정 버전에서 오류가 날때가 있네요..

Assembly 'Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll' will not be loaded due to errors: Reference has errors 'unityplastic'.

Assembly 'Packages/com.unity.collab-proxy/Lib/Editor/PlasticSCM/unityplastic.dll' will not be loaded due to errors: unityplastic references strong named System.Windows.Forms Assembly references: 4.0.0.0 Found in project: 2.0.0.0. Assembly Version Validation can be disabled in Player Settings "Assembly Version Validation"

혹시 위와 같이 PlasticSCM에서 오류가 난다면 아래 포스트를 참고해주세요.

2022.10.05 - [Programming/Unity] - [Unity] 유니티 컴파일 에러 - Assembly 'unityplastic' , PlasticSCM 관련

 

[Unity] 유니티 컴파일 에러 - Assembly 'unityplastic' , PlasticSCM 관련

✔ dll import error - unityplastic PlasticSCM 패키지 삭제 모든 버전에서 나타나는 에러는 아니지만 특정 버전에서 한번씩 다른 DLL을 임포트하고나면 아래와 같은 에러가 나타날때가있다. Assembly 'Library/.

timeboxstory.tistory.com

 

감사합니다.

반응형

댓글