GJM: Unity3d打开对话框

阅读: 评论:0

GJM: Unity3d打开对话框

GJM: Unity3d打开对话框

编辑模式(Editor)下:


string path = EditorUtility.OpenFilePanel("Load png Textures of Directory", "", "");
WWW www = new WWW("file:///" + path);
Debug.Log(www.url);
yield return www;
ure = ure;

非编辑模式


OpenFileDialog diglog = new OpenFileDialog();
diglog.InitialDirectory = "file://" + UnityEngine.Application.dataPath;  //定义打开的默认文件夹位置//定义打开的默认文件夹位置
if(ofd.ShowDialog() == DialogResult.OK)
{// todo: 显示打开文件的窗口Debug.Log(ofd.FileName);
}

注意: 以上操作需要添加 System.Windows.Forms.dll,放在Plugins文件夹下,同时需要更改 2.0 Subset为2.0

![.jpg]

unity3d调用win32打开对话框

DllTestusing UnityEngine;
using System.Collections;
using System;
using System.Runtime.InteropServices;[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto )]  public class OpenFileName 
{public int      structSize = 0;public IntPtr   dlgOwner = IntPtr.Zero; public IntPtr   instance = IntPtr.Zero;public String   filter = null;public String   customFilter = null;public int      maxCustFilter = 0;public int      filterIndex = 0;public String   file = null;public int      maxFile = 0;public String   fileTitle = null;public int      maxFileTitle = 0;public String   initialDir = null;public String   title = null;   public int      flags = 0; public short    fileOffset = 0;public short    fileExtension = 0;public String   defExt = null; public IntPtr   custData = IntPtr.Zero;  public IntPtr   hook = IntPtr.Zero;  public String   templateName = null; public IntPtr   reservedPtr = IntPtr.Zero; public int      reservedInt = 0;public int      flagsEx = 0;
}public class DllTest
{[DllImport("Comdlg32.dll",SetLastError=true,ThrowOnUnmappableChar=true, CharSet = CharSet.Auto)]          public static extern bool GetOpenFileName([ In, Out ] OpenFileName ofn );   public static  bool GetOpenFileName1([ In, Out ] OpenFileName ofn ){return GetOpenFileName(ofn);}
}
using UnityEngine;using System.Collections;using System.Text;using System.Runtime.InteropServices;using System;public class Test : MonoBehaviour {public GameObject plane;void OnGUI(){if(GUI.Button(new Rect(0,0,100,35),"OpenDialog")){OpenFileName ofn = new OpenFileName();ofn.structSize = Marshal.SizeOf(ofn);ofn.filter = "All Files*.*";ofn.file = new string(new char[256]);ofn.maxFile = ofn.file.Length;ofn.fileTitle = new string(new char[64]);ofn.maxFileTitle = ofn.fileTitle.Length;ofn.initialDir =UnityEngine.Application.dataPath;//默认路径ofn.title = "Open Project";ofn.defExt = "JPG";//显示文件的类型//注意 一下项目不一定要全选 但是0x00000008项不要缺少ofn.flags=0x00080000|0x00001000|0x00000800|0x00000200|0x00000008;//OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIRif(DllTest.GetOpenFileName( ofn )){StartCoroutine(WaitLoad(ofn.file));//加载图片到panleDebug.Log( "Selected file with full path: {0}"+ofn.file );}}}IEnumerator WaitLoad(string fileName){WWW wwwTexture=new WWW("file://"+fileName);Debug.Log(wwwTexture.url);yield return derer.material.mainTexture&#ure;}
}

![.jpg]
![.jpg]

参考知识:

  1. .runtime.interopservices.inattribute%28v=vs.85%29
  2. =vs.85%29.aspx
  3. C#和win32类型对应
  4. .html

版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:/
原文地址: 传送门

本文发布于:2024-01-27 17:07:44,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063464641561.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对话框   GJM   Unity3d
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23