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. 安装LoadRunner提示缺少vc2005_sp1_with_atl..

    装自动化负载测试工具LoadRunner前,需要预先安装其运行的基础环境.如:安装LoadRunner 11时就需要先安装Micrsoft Visual C++ 2005 SP1.C++ 2008运行 ...

  2. [转载]tslib1.4与Qt4.8.6的交叉编译与移植

    原文:http://www.cnblogs.com/Jasonsblog/p/3757985.html http://blog.csdn.net/sno_guo/article/details/168 ...

  3. web移动端资源整(1)

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  4. socketserver 分块记录

    网络编程 Socket(TCP,IP)套接字 服务端 运行起来, 客户端 客户端 客户端 客户端 服务端: import socket sk = socket.socket() #绑定端口号 sk.b ...

  5. 利用yii2 gridview实现批量删除案例[转]

    今天仍然继续探讨GridView的问题,昨天有个小伙伴留言说你用gridview给我去掉表头的链接?我想啊想,这用gridview确实不容易实现,至少我没想出来,会的下方可留言.但是呢,这根gridv ...

  6. Coding源码学习第四部分(Masonry介绍与使用(二))

    接上篇,本篇继续对Masonry 进行学习,接上篇示例: (6)Masonry 布局实现iOS 计算器 - (void)exp4 { WS(weakSelf); // 申明区域,displayView ...

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

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

  8. ByteArrayBuilder

    public class ByteArrayBuilder : IDisposable { #region Constants /// <summary> /// True in a by ...

  9. 常用CSS样式

    1.line-height:行高.默认normal normal:允许内容顶开或溢出制定的容器边界; length:15px,可以为负数; ... 2.overflow:滚动条设置 overflow- ...

  10. Microsoft .NET Framework 4.6.1

    适用于操作系统平台:Windows 7 SP1.Windows 8.Windows 8.1.Windows 10.Windows Server 2008 R2 SP1.Windows Server 2 ...