• 感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神支持是博主强大的写作动力以及转载收藏动力。欢迎转载!
  • 版权声明:本文原创发表于 【请点击连接前往】 ,未经作者同意必须保留此段声明!如有问题请联系我,侵立删,谢谢!
  • 我的博客:http://www.cnblogs.com/GJM6/  -  传送门:【点击前往
  1. using UnityEngine;
  2. using System.Collections;
  3. using System;
  4. using System.Runtime.InteropServices;
  5. [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
  6. public class OpenFileName
  7. {
  8. public int structSize = 0;
  9. public IntPtr dlgOwner = IntPtr.Zero;
  10. public IntPtr instance = IntPtr.Zero;
  11. public String filter = null;
  12. public String customFilter = null;
  13. public int maxCustFilter = 0;
  14. public int filterIndex = 0;
  15. public String file = null;
  16. public int maxFile = 0;
  17. public String fileTitle = null;
  18. public int maxFileTitle = 0;
  19. public String initialDir = null;
  20. public String title = null;
  21. public int flags = 0;
  22. public short fileOffset = 0;
  23. public short fileExtension = 0;
  24. public String defExt = null;
  25. public IntPtr custData = IntPtr.Zero;
  26. public IntPtr hook = IntPtr.Zero;
  27. public String templateName = null;
  28. public IntPtr reservedPtr = IntPtr.Zero;
  29. public int reservedInt = 0;
  30. public int flagsEx = 0;
  31. }
  32. public class WindowDll
  33. {
  34. [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
  35. public static extern bool GetOpenFileName([In, Out] OpenFileName ofn);
  36. public static bool GetOpenFileName1([In, Out] OpenFileName ofn)
  37. {
  38. return GetOpenFileName(ofn);
  39. }
  40. }
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Runtime.InteropServices;
  4. using System.Reflection;
  5. public class CameraTest : MonoBehaviour
  6. {
  7. public WebCamTexture cameraTexture;
  8. public string cameraName = "";
  9. private bool isPlay = false;
  10. // Use this for initialization
  11. void Start()
  12. {
  13. //StartCoroutine(OpenCamera());
  14. }
  15. // Update is called once per frame
  16. void Update()
  17. {
  18. }
  19. /// <summary>
  20. /// 获取权限打开摄像头
  21. /// </summary>
  22. /// <returns></returns>
  23. IEnumerator OpenCamera()
  24. {
  25. yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
  26. if (Application.HasUserAuthorization(UserAuthorization.WebCam))
  27. {
  28. WebCamDevice[] devices = WebCamTexture.devices;
  29. cameraName = devices[0].name;
  30. cameraTexture = new WebCamTexture(cameraName, 320, 240, 15);
  31. cameraTexture.Play();
  32. isPlay = true;
  33. }
  34. }
  35. void OnGUI()
  36. {
  37. if (isPlay)
  38. {
  39. GUI.DrawTexture(new Rect(0, 0, 320, 240), cameraTexture, ScaleMode.ScaleAndCrop);
  40. }
  41. if (GUI.Button(new Rect(0, 0, 100, 35), "OpenDialog"))
  42. {
  43. OpenFileName ofn = new OpenFileName();
  44. ofn.structSize = Marshal.SizeOf(ofn);
  45. ofn.filter = "All Files\0*.*\0\0";
  46. ofn.file = new string(new char[256]);
  47. ofn.maxFile = ofn.file.Length;
  48. ofn.fileTitle = new string(new char[64]);
  49. ofn.maxFileTitle = ofn.fileTitle.Length;
  50. string path = Application.streamingAssetsPath;
  51. path = path.Replace('/','\\');
  52. //默认路径
  53. ofn.InitialDirectory = path;
  54. //ofn.InitialDirectory = "D:\\MyProject\\UnityOpenCV\\Assets\\StreamingAssets";
  55. ofn.title = "Open Project";
  56. ofn.defExt = "JPG";//显示文件的类型
  57. //注意 一下项目不一定要全选 但是0x00000008项不要缺少
  58. ofn.flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008;//OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR
  59. if (WindowDll.GetOpenFileName(ofn))
  60. {
  61. Debug.Log("Selected file with full path: {0}" + ofn.file);
  62. }
  63. }
  64. }
  65. }

原文地址点击这里

文件的类型设置

  1. ofn.filter = "图片文件(*.jpg*.png)\0*.jpg;*.png";

GJM : Unity调用系统窗口选择本地文件的更多相关文章

  1. (转)在WinForm中选择本地文件

    相信很多朋友在日常的编程中总会遇到各钟各样的问题,关于在WinForm中选择本地文件就是很多朋友们都认为很难的一个学习.net的难点, 在WebForm中提供了FileUpload控件来供我们选择本地 ...

  2. 【.Net】在WinForm中选择本地文件

    相信很多朋友在日常的编程中总会遇到各钟各样的问题,关于在WinForm中选择本地文件就是很多朋友们都认为很难的一个学习.net的难点, 在WebForm中提供了FileUpload控件来供我们选择本地 ...

  3. 选择本地文件上传控件 input标签

    当要通过控件来选择本地文件上传的时候的一种方式 <input type="file" id="input-file"/> 注意 type类型一定要是 ...

  4. JS调用activeX实现浏览本地文件夹功能 wekit内核只需要<input type="file" id="files" name="files[]" webkitdirectory/>即可,IE内核比较麻烦

    研究了一天,js访问本地文件本身是不可能的,只能借助于插件.植入正题,IE仅支持ActiveX插件. function openDialog() { try { var Message = " ...

  5. Google调用explorer.exe打开本地文件

    给IE浏览器地址栏输个本地文件路径,会自动用explorer.exe打开,这个挺好的,但是IE对jQuery稍微高点的版本不怎么待见,只好自己给Google折腾一个调用explorer的功能----- ...

  6. Android调用相机拍照并返回路径和调用系统图库选择图片

    调用系统图库: Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI); ...

  7. Unity中调用Windows窗口选择文件

    1.OpenFileName数据接收类,如下: using UnityEngine; using System.Collections; using System; using System.Runt ...

  8. iOS 调用拍照、选择本地相册、上传功能---未完善。

    1.新建viewController 拖入一个Button,添加点击事件,使用代理方法 <UIActionSheetDelegate,UIImagePickerControllerDelegat ...

  9. Android WebView选择本地文件上传

    This sample demonstrate android webview choose file to upload. I just implement the client code ,the ...

随机推荐

  1. 决策树和基于决策树的集成方法(DT,RF,GBDT,XGBT)复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-the ...

  2. MySQL_01之MySQL数据库基础

    1.通过SQL(结构化查询语言)操作数据库: DDL:数据定义语言,创建库,创建表,选择: DML:数据操作语言,完成数据增删改: DQL:数据查询语言,完成数据查询: DCL:数据控制语言,授权.回 ...

  3. 修改input框默认黄色背景

    input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { -webkit-box-shadow: 0 0 ...

  4. Policy Management

    策略管理用于管理数据库实例.数据库以及数据库对象的各种属性,Policy Management 位于Management Catalog下, 一,Basic concepts 引用园子里深蓝的博客&l ...

  5. LinQ to entities 不能识别方法“system.string.ToString(system.String)”.因此该方法无法转换为存储表达式

    [我也是刚研究IEnumerable和IQueryable]以下都是个人理解,仅供参考,如有错误欢迎指出~ 在EF里面,使用IQueryable和IEnumerable可以延迟加载. IQueryba ...

  6. [WPF]带下拉列表的文本框

    控件我已经弄好了,代码比较多,所以没办法全面介绍. 一开始我是直接继承Selector类来实现,做是做出来了,不过发现性能不太好.于是,我就想着自己来实现.毕竟我是做给自己用的,也不考虑过多的东西,也 ...

  7. 《JS设计模式笔记》 1,单例模式

    <script type="text/javascript"> //单例模式 //1,每次点击都会生成一个新的div var createMask=function ( ...

  8. 控制对话框风格的activity的显示大小与位置

    项目开发的需要,因为到现在项目接近完工,用户提出对条件筛选方式进行修改,为做到最小的改动实现用户的需求,各种百度,对于对话框风格大家普遍使用PopupWindow,但由于之前开发设计时使用的是acti ...

  9. Cesium原理篇:3最长的一帧之地形(1)

    前面我们从宏观上分析了Cesium的整体调度以及网格方面的内容,通过前两篇,读者应该可以比较清楚的明白一个Tile是怎么来的吧(如果还不明白全是我的错).接下来,在前两篇的基础上,我们着重讨论一下地形 ...

  10. 1.羽翼sqlmap学习笔记之Access注入

    使用sqlmap工具进行Acces注入:1.判断一个url是否存在注入点,根据返回数据判断数据库类型: .sqlmap.py -u "http://abcd****efg.asp?id=7& ...