using OpenWinForm = System.Windows.Forms;

在unity3d中,使用FileDialog应该把System.Windows.Forms.dll拷贝到unity工程的plugins目录,

并且把Player Setting中Other Settings下的api compatibility Level改为.NET2.0。要不无法编译通过。

//比如unity3d要让用户选择某一个音乐文件播放;

private void SelectMusic(){
        OpenWinForm.OpenFileDialog op = new OpenWinForm.OpenFileDialog();
        op.Title = "音乐";
        op.Filter = "音频文件(*.wav;*.ogg)|*.wav;*.ogg";
        if (op.ShowDialog() == OpenWinForm.DialogResult.OK || op.ShowDialog() == OpenWinForm.DialogResult.Yes)
        {
            string selectName = op.FileName;
            customBgmPath.text = selectName;

string path = customBgmPath.text;      
            WWW www = new WWW("file://"+path);
            if(www.audioClip){
                AudioClip clip = www.audioClip;
                AudioPlayCtr.instance.ChangeBgMusic(clip);
            }

}
        else {
            return;
        }
    }

//自定义文件保存文件夹;
    private void SaveCutScreenPath()
    {
        OpenWinForm.FolderBrowserDialog fb = new OpenWinForm.FolderBrowserDialog();
        fb.ShowNewFolderButton = true;
        fb.RootFolder = Environment.SpecialFolder.MyDocuments;
        fb.SelectedPath = "C:";
        fb.Description = "请选择截图保存目录";
        fb.RootFolder = Environment.SpecialFolder.MyDocuments;
        if (fb.ShowDialog() == OpenWinForm.DialogResult.OK || fb.ShowDialog() == OpenWinForm.DialogResult.Yes)
        {
            string selectName = fb.SelectedPath;
            customCutScreenPath.text = selectName;
        }
        else {
            return;
        }
    }

//比如unity3d截图后,弹出对话框用户选择保存路径;

public IEnumerator CutScreent() {
        int width = Screen.width;
        int height = Screen.height;
        yield return new WaitForEndOfFrame();
        Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);//设置Texture2D
        tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);//获取Pixels           
        tex.Apply();//应用改变
        byte[] bytes = tex.EncodeToPNG();//转换为byte[]
        Destroy(tex);

OpenWinForm.SaveFileDialog saveFileDialog = new OpenWinForm.SaveFileDialog();
        saveFileDialog.Filter = "图像文件(*.png)|*.png";
        saveFileDialog.FilterIndex = 2;
        saveFileDialog.RestoreDirectory = true;
        if (saveFileDialog.ShowDialog() == OpenWinForm.DialogResult.OK)
        {
            string fName = saveFileDialog.FileName;
            Stream flstr = new FileStream(fName, FileMode.Create);//文件操作
            BinaryWriter sw = new BinaryWriter(flstr, System.Text.Encoding.Unicode);
            sw.Write(bytes);
            sw.Close();
            flstr.Close();
        }
    }

C# 文件选择对话框,Unity3d文件保存对话框的更多相关文章

  1. C#中对文件进行选择对话框打开和保存对话框进行复制

    场景 通过文件选择对话框选择文件 复制文件到指定路径 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号霸道的程序猿获取编程相关电子书.教 ...

  2. C#对话框-打开和保存对话框(转)

    //打开文件            OpenFileDialog openFileDialog = new OpenFileDialog();            openFileDialog.In ...

  3. 重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口

    原文:重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (2 ...

  4. 文件选择对话框:CFileDialog

    程序如下: CString   FilePathName; //文件名参数定义 CFileDialog  Dlg(TRUE,NULL,NULL,                             ...

  5. Java Swing提供的文件选择对话框 - JFileChooser

    JFileChooser()           构造一个指向用户默认目录的 JFileChooser. JFileChooser(File currentDirectory)           使 ...

  6. C#(Winform)的SaveFileDialog(文件保存对话框)控件使用

       #region 保存对话框   private void ShowSaveFileDialog()   {         //string localFilePath, fileNameExt ...

  7. 利用JFileChooser实现文件选择对话框

    简单的文件选择对话框: package mypackage;/** * 打开文件和存储文件 */import java.awt.BorderLayout;import java.awt.Contain ...

  8. NX二次开发-UFUN文件选择对话框UF_UI_create_filebox

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> UF_initialize(); //文件选择对话框 char sPromptSt ...

  9. VBScript - 弹出“文件选择对话框”方法大全!

    本文记录,VBScript 中,各种打开 "文件选择对话框" 的方法. 实现方法-1 (mshta.exe): 首先,我们要实现的就是,弹出上面的这个"文件选择对话框&q ...

  10. C# Wpf 文件保存对话框

    C# Wpf库中无文件保存对话框,需引用winform,引用winform后多处提示引用不明确,将winform引用改别名. // 引用winform,改别名 using Forms = System ...

随机推荐

  1. 跟小静读《jQuery权威指南》——目录

    前言 2014年开始了,年底给自己制订的学习计划,第一步先从学习<jQuery权威指南>开始. jQuery大家都很比较熟悉,但是我经常是边用的时候边对照着API,这次找本书通读一遍,记录 ...

  2. 动态获取R.drawable.xx资源

    String imageName = "index_fragmen"+getColor();final int resId = context.getResources().get ...

  3. js语法重点

    1:最新的ES6规范引入了新的数据类型Map:var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);m.get('Michael ...

  4. iOS/OSX学习资源

    https://www.raywenderlich.com/  (Ray视频教学) http://wiki.jikexueyuan.com/project/swift/  (swift中文学习网站)

  5. 线程隔离ThreadLocal

    ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地 ...

  6. DeviceIoControl 应用层如何和驱动层通信?

    调用的方法之一的DeviceIoControl 驱动层提供设备名 例如filedisk 在驱动层 首先先是注册列表 用winObj查看 filedisk的驱动对象 但是 这八个对象时怎么生成的呢? 我 ...

  7. lnmp 设置ci pathinfo和去掉index.php

    LNMP上各个版本pathinfo各个版本的设置基本一样: lnmp v1.1上,修改对应虚拟主机的配置文件去掉#include pathinfo.conf前面的#,把try_files $uri = ...

  8. Redux教程2:链接React

    通过前面的教程,我们有了简单的环境,并且可以运行Redux的程序,也对 如何编写Redux示例 有了初步的印象: 掌握了 使用Redux控制状态转移 ,继而驱动 React 组件发生改变,这才是学习R ...

  9. asp.net webForm登录授权

    HttpCookie cookie; cookie = FormsAuthentication.GetAuthCookie(W3Account, isRemberMe); if (isRemberMe ...

  10. MFC-01-Chapter01:Hello,MFC---1.1 Windows 编程模型

    1.1 Windows编程模型 为传统的操作系统编写的程序使用的是过程化模型,即程序从头到尾按顺序执行.例如C程序,从main函数入口开始执行,中间调用不同的函数一直到程序结束返回,这种过程是程序本身 ...