unity----OpenFileDialog打开选择对话框

unity----OpenFileDialog打开选择对话框

原创  2015年02月10日 12:10:11
  • 3755

 

[csharp]  view plain  copy
 
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using System;  
  4. using System.Runtime.InteropServices;  
  5.   
  6. [ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Auto )]    
  7.   
  8. public class OpenFileName   
  9. {  
  10.     public int      structSize = 0;  
  11.     public IntPtr   dlgOwner = IntPtr.Zero;   
  12.     public IntPtr   instance = IntPtr.Zero;  
  13.     public String   filter = null;  
  14.     public String   customFilter = null;  
  15.     public int      maxCustFilter = 0;  
  16.     public int      filterIndex = 0;  
  17.     public String   file = null;  
  18.     public int      maxFile = 0;  
  19.     public String   fileTitle = null;  
  20.     public int      maxFileTitle = 0;  
  21.     public String   initialDir = null;  
  22.     public String   title = null;     
  23.     public int      flags = 0;   
  24.     public short    fileOffset = 0;  
  25.     public short    fileExtension = 0;  
  26.     public String   defExt = null;   
  27.     public IntPtr   custData = IntPtr.Zero;    
  28.     public IntPtr   hook = IntPtr.Zero;    
  29.     public String   templateName = null;   
  30.     public IntPtr   reservedPtr = IntPtr.Zero;   
  31.     public int      reservedInt = 0;  
  32.     public int      flagsEx = 0;  
  33. }  
  34.   
  35. public class DllTest  
  36. {  
  37. [DllImport("Comdlg32.dll",SetLastError=true,ThrowOnUnmappableChar=true, CharSet = CharSet.Auto)]            
  38.      public static extern bool GetOpenFileName([ In, Out ] OpenFileName ofn );     
  39.      public static  bool GetOpenFileName1([ In, Out ] OpenFileName ofn )  
  40.   
  41.     {  
  42.         return GetOpenFileName(ofn);  
  43.     }  
  44. }  

[csharp]  view plain  copy
 
  1. using UnityEngine;  
  2.   
  3. using System.Collections;  
  4.   
  5. using System.Text;  
  6.   
  7. using System.Runtime.InteropServices;  
  8.   
  9. using System;  
  10.   
  11. public class Test : MonoBehaviour {  
  12.   
  13.     public GameObject plane;  
  14.   
  15.     void OnGUI()  
  16.     {  
  17.         if(GUI.Button(new Rect(0,0,100,35),"OpenDialog"))  
  18.         {  
  19.             OpenFileName ofn = new OpenFileName();  
  20.   
  21.             ofn.structSize = Marshal.SizeOf(ofn);  
  22.   
  23.             //三菱(*.gxw)\0*.gxw\0西门子(*.mwp)\0*.mwp\0All Files\0*.*\0\0  
  24.             ofn.filter = "All Files\0*.*\0\0";  
  25.   
  26.             ofn.file = new string(new char[256]);  
  27.   
  28.             ofn.maxFile = ofn.file.Length;  
  29.   
  30.             ofn.fileTitle = new string(new char[64]);  
  31.   
  32.             ofn.maxFileTitle = ofn.fileTitle.Length;  
  33.   
  34.             ofn.initialDir =UnityEngine.Application.dataPath;//默认路径  
  35.   
  36.             ofn.title = "Open Project";  
  37.   
  38.             ofn.defExt = "JPG";//显示文件的类型  
  39.            //注意 一下项目不一定要全选 但是0x00000008项不要缺少  
  40.             ofn.flags=0x00080000|0x00001000|0x00000800|0x00000200|0x00000008;//OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR  
  41.   
  42.             if(DllTest.GetOpenFileName( ofn ))  
  43.             {  
  44.   
  45.                // StartCoroutine(WaitLoad(ofn.file));//加载图片到panle  
  46.   
  47.                 Debug.Log( "Selected file with full path: {0}"+ofn.file );  
  48.   
  49.             }  
  50.   
  51.         }  
  52.   
  53.     }  
  54.   
  55.     IEnumerator WaitLoad(string fileName)  
  56.     {  
  57.         WWW wwwTexture=new WWW("file://"+fileName);  
  58.   
  59.         Debug.Log(wwwTexture.url);  
  60.   
  61.         yield return wwwTexture;  
  62.   
  63.         plane.renderer.material.mainTexture=wwwTexture.texture;  
  64.     }  
  65. }  
Unity 调用系统文件窗口进行打开文件和保存文件 在window平台下,有时我们需要打开或则保存一些文件到指定目录下,这时我们不需要再重复造轮子,完全可以调用系统的文件窗口,然而由于在Unity 中是无法直接使用 C# 提供的 OpenFileDialog 与 FolderBrowserDialog 类来打开文件夹对话框。下面来将文件打开窗口和保存窗口进行封装一下,具体的调用如下: 文件日志类 using UnityEngine; using System.Collections; using System.Runtime.InteropServices 阅读详情

相关推荐

Unity中打开文件窗口(OpenFileDialog)的几种方法

所使用Unity版本:2017.1.0f3,Unity中打开文件窗口(OpenFileDialog)的几种方法

c# OpenFileDialog控件的使用方式

一、打开文件对话框(OpenFileDialog) 1、 OpenFileDialog控件的基本属性 InitialDirectory:对话框的初始目录 Filter:获取或设置当前文件名筛选器字符串,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*" FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 RestoreDirec...

crjmail的博客 1404

瑞芯微RK3568开发板实战:Android11系统parameter.txt文件配置全解析(附常见问题排查)

本文深入解析了瑞芯微RK3568开发板在Android 11系统下parameter.txt文件的配置要点与实战技巧。作为BootLoader启动阶段的核心蓝图,该文件决定了硬件初始化、分区布局及电源管理。文章详细拆解了身份标识、GPIO控制(PWR_HLD)、命令行参数及分区表等关键字段的配置逻辑,并针对RK3568平台与Android 11特性提供了专项适配策略,最后附带了启动失败、分区异常等常见问题的深度排查方法。

php55的博客 895

Unity中打开文件窗口(OpenFileDialog)的几种方法对比

1 概述 本文链接:http://blog.youkuaiyun.com/ithot/article/details/76997237 用Unity以来,一直都没怎么关注过打开对话框去选取本地文件,最近需要用到这个功能,在网上搜索了一下,在搜索的资料的基础上,对比下Unity运行时打开文件对话框的两种方法,以及编辑时的打开文件Windows对话框方法。有些地方不太懂,期待路过的大神指导下。 工程文件下载(Unity 2017.1.0f3版本):链接: http://pan.baidu.com/s/1skJ8yvj

翻肚鱼儿的博客 2316

lidar点云比赛-Southlidar软件使用入门

lidar点云比赛-Southlidar软件使用入门 广西高校重点实验室培训基地 系统控制与信息处理重点实验室 本篇博客来自河池学院: 智控无人机小组 写作时间:2020.09.29 一、软件资源及安装 1.下载地址: https://pan.baidu.com/s/1jN1pynmAZOqj5mMx774pVg 提取码:gkvv (资源来自南方测绘) 2.安装 进入链接,找到软件文件夹, 内含文件即为安装包 3.下载成功后按提示安装即可 4.安装成功后桌面自动创建一个快捷方式 二、界面布

qq_49621416的博客 4891

【高低温试验】试验报告模板

高低温循环试验,验证被测设备(DUT)在极端高温、低温环境下的性能稳定性、功能可靠性及安全性,确保其符合设计规范和相关标准(如GB/T 2423.1、GB/T 2423.2)。:验证设备在剧烈温度变化下的耐受能力(如-40℃↔+85℃,温变速率≥10℃/min)。低温测试标准:GB/T 2423.2-2008(温度-40℃,保持时间4小时):模拟高温高湿环境(如温度+60℃,湿度95%RH),测试防潮性能。

电路巫师把一切不可能变成不可能 1565

Unity 置顶OpenFileDialog文件选择框

Unity OpenFileDialog 置顶文件选择框

qq_26318597的博客 349

多目标进化算法——NSGA-II(python实现)

NSGA-II(python实现)--最全注释,痴呆能懂--

no___good的博客 5279

Unity打开文件OpenFileDialog

一、打开文件对话框(OpenFileDialog) 1、 OpenFileDialog控件的基本属性 InitialDirectory:对话框的初始目录 Filter:获取或设置当前文件名筛选器字符串,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*" FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 RestoreDirectory 控制对话框在关闭之前是否恢复当前目录 FileName:第一个在对话框中显示的文件或最后一个选取的...

qq_38721111的博客 2264

信奥赛csp初赛高频考点【位运算】(详细解析)

信奥赛csp初赛高频考点【位运算】(详细解析)

王老师青少年编程 368

DeepSeek:为文化创意产业注入AI新动能

沪南胜境,闵行新章。随后,2024 年 5 月,DeepSeek 宣布开源第二代 MoE 大模型 DeepSeek-V2,以其比肩 GPT-4Turbo 的卓越性能,以及仅为 GPT-4 百分之一的价格优势,迅速在市场中掀起波澜,收获了 “AI 届拼多多” 的独特名号,让更多人看到了高性价比 AI 大模型的可能性。创作者自身也应提高对创作伦理的认识,树立正确的创作观念,在使用 AI 工具时,保持对创作的主导权,充分发挥自己的创造力和想象力,将 AI 作为创作的辅助工具,而不是替代品。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1961

Unity | 打开文件对话框批量选择文件

之前在新浪博客写了一篇关于打开文件对话框批量选择文件的文章,可惜新浪博客不能写代码,奈何当时太年轻,并不觉得不方便,直到遇到优快云...emmm,不想将就了,所以在这里更新一波,并补充其他的方法: 原文的方法一 1. 源码如下: System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.Op...

该用户还没想到好的昵称的博客 3938

【Claude Code的Harness Engineering实现】:06-记忆系统(Memory)

记忆系统是Claude Code实现跨会话持久化和上下文保持的核心组件。它分为短期记忆(当前会话的对话历史)和长期记忆(跨会话保留的结构化信息),通过多层级的文件系统实现灵活的记忆管理。

rengang66的博客 240

Unity打开外部文件夹并选择文件

最近需要做一个服务器一键开启客户端相同路径程序的功能,需要在服务器选择相应文件夹的程序,然后同时服务器客户度同时开启选中程序,首先需要从unity打开外部文件夹并选择文件的功能,具体操作如下: 首先创建一个单独的类,用来储存打开的系统窗口的设置,下面的变量没有特殊要求不需要做任何改动: using UnityEngine; using System.Collections; using Sy...

pq8888168的博客 1万+

沁恒CH32V208GBU6读写芯片内部FLASH:代码空间;使用OTA时候的代码空间;保存结构体到FLASH

沁恒CH32V208GBU6读写芯片内部FLASH:代码空间;使用OTA时候的代码空间;保存结构体到FLASH

cheng___yi的博客 555

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Unity操作文件对话框

unity中调用打开文件窗口和保存窗口

杨绵的博客 5585

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Unity学习——打开文件选择对话框

/// <summary> /// 打开对话框 /// </summary> /// <returns></returns> public static string AddGame() { OpenFileDlg pth = new OpenFileDlg(); str...

www1501766557的博客 946

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

轻松实现Unity文件选择功能:OpenFileDialog的几种方法

轻松实现Unity文件选择功能:OpenFileDialog的几种方法 【下载地址】Unity中打开文件窗口OpenFileDialog的几种方法 Unity中打开文件窗口(OpenFileDialog)的几种方法本资源文件提供了在Unity中实现打开文件窗口(OpenFileDialog)的几种方法 ...

gitblog_09785的博客 1326

【亲测免费】 轻松实现Unity文件选择功能:OpenFileDialog的几种方法

轻松实现Unity文件选择功能:OpenFileDialog的几种方法 【下载地址】Unity中打开文件窗口OpenFileDialog的几种方法 Unity中打开文件窗口(OpenFileDialog)的几种方法本资源文件提供了在Unity中实现打开文件窗口(OpenFileDialog)的几种方法 ...

gitblog_09807的博客 2004

Unity C# 打开windows对话框选择文件夹或选择文件

unity没有提供打开windows对话框的api,在开发种也会遇到选择系统文件夹或选择系统文件的需求。

快乐教主的博客 2584

Unity windows打开文件选择对话框

Unity 中是无法直接使用 C# 提供的 OpenFileDialog 与 FolderBrowserDialog 类来打开文件夹对话框。 这些方式在Untiy 编辑器下可能使用成功,但是一旦打包成 应用程序,就无法运行了。 可以使用外部插件 StandaloneFileBrowser 来处理 git地址:https://github.com/gkngkc/UnityStandaloneFileBrowser 插件有详细的例子! ...

磨刀不误砍柴工 1304
上一篇: Unity调用Win32的打开和保存文件对话框
下一篇: Winform OpenFileDialog打开文件对话框
hypercube2
博客等级 码龄18年 23粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值