반응형
✔ C# - FileOpenDialog
유니티에서 윈도우 파일 브라우저(탐색기)를 사용하기
Window 10 디자인 FileOpenDialog, Windows.Form.dll Download
Unity 버튼 클릭시 파일탐색기 기능을 구현해보자
일단 먼저 dll이 필요하다. 아래 첨부된 파일들을 다운로드 받아 Unity의 Asset/Plugins 폴더안에 넣자.
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 관련
감사합니다.
반응형
'Programming > Unity' 카테고리의 다른 글
[Unity3D] Unity에서 C# 스크립트 클릭 시 Visual Studio 안열림, 무반응 [ 해결법 ] (2) | 2021.01.07 |
---|---|
[Unity3D] Unity Remote 5 동작 되지 않는 문제 [해결법] (5) | 2020.12.31 |
[Unity3D] 3D 오브젝트 좌표에 2D 텍스트 위치 시키기 (4) | 2020.12.21 |
[Unity3D] 카메라 거리에 따라 오브젝트 활성화/비활성화 (5) | 2020.12.04 |
[Unity] C# 외부 프로세스(프로그램) 조회 및 실행, 종료 - args 매개변수 전달 (2) | 2020.12.04 |
댓글