热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《转》unity3d各种OpenFileDialog操作

转自:http:www.cnblogs.comU-tansuoarchive201207102584447.html1编辑模式(Editor)下:stringpathEditorU

1 编辑模式(Editor)下:

string path = EditorUtility.OpenFilePanel("Load png Textures of Directory", "", "");
WWW ww=new WWW("file:///"+path);
print(ww.url);
yield return ww;
gui.texture=ww.texture;
2.非编辑模式:
,
OpenFileDialog ofd = new OpenFileDialog();   //new一个方法
 ofd.InitialDirectory ="file://"+UnityEngine.Application.dataPath;  //定义打开的默认文件夹位置//定义打开的默认文件夹位置
if(ofd.ShowDialog()==DialogResult.OK)
{
      //显示打开文件的窗口
      Debug.Log( ofd.FileName);
}
,
以上操作需要添加 System.Windows.Forms.dll,放在Plugins文件夹下,同时需要更改.net 2.0 Subset为.net2.0 

,

3、unity3d调用win32打开对话框

,
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\0*.*\0\0";

            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_NOCHANGEDIR

            if(DllTest.GetOpenFileName( ofn ))
            {

                StartCoroutine(WaitLoad(ofn.file));//加载图片到panle

                Debug.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 wwwTexture;

        plane.renderer.material.mainTexture=wwwTexture.texture;
    }
}

参考知识:1、http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.inattribute%28v=vs.85%29
2、http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839%28v=vs.85%29.aspx
3、C#和win32类型对应
4、http://blog.csdn.net/wanfang323/article/details/6372995

,

,

 

《转》unity3d各种OpenFileDialog操作


推荐阅读
author-avatar
曾经沧海难为水95531837155423
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有