您的位置:首页 > 移动开发 > Unity3D

Unity3d打开文件选择对话框

2015-07-30 21:47 483 查看
如何在unity3d中选择本地文件呢,网上有介绍使用OpenFileDialog的方法来调用windows的文件选择对话框,但是要弹出windows窗口,这对于在全屏模式下选择文件来说界面就有些不太友好了。为了使用unity3中元素显示文件选择对话框,本人封装了一个dll文件可嵌入unit3d用于文件选择,界面还可以自己修改。

效果如图:

,左边就是一个文件选择窗口,可以选择指定类型的文件,组件还支持播放本地视频文件,这两个功能可以免费使用。

原理:unity3多中显示框架,在NN视频组件中显示(中间白色区域的)目录和文件列表。通过图片的方式显示出来。部分代码如下:

显示文件选择窗口

//选择文件

if(bSelectFile)

{

fileDialog.windowDialog=GUI.Window (100,fileDialog.windowDialog, myFileWindow,"");

}

2、用图像显示目录和文件列表

UInt32 vsize= NCGetVideo (-1, fileDialog.nvbyts, fileDialog.pvrtcBytes);

if (vsize!=0) { //有视频

UInt32 cx = vsize >> 16;

UInt32 cy = vsize & 0xffff;

if (cx * cy * 3 != fileDialog.nvbyts) { //新的大小

fileDialog.nvbyts=cx * cy * 3;

fileDialog.pvrtcBytes = new byte[fileDialog.nvbyts];

fileDialog.texture2D = new Texture2D ((int)cx,(int)cy, TextureFormat.RGB24, false);

onText("file dialog size:"+cx+":"+cy);

return;

}

fileDialog.texture2D.LoadRawTextureData (fileDialog.pvrtcBytes);

fileDialog.texture2D.Apply ();

Rect rc=fileDialog.windowDialog;

rc.x=2;

rc.y=20;

rc.width=320; //不能缩放

rc.height=400;

GUI.DrawTexture (rc, fileDialog.texture2D, ScaleMode.StretchToFill, true, 10.0f);

}

3、响应鼠标操作:当鼠标点击时获取点击的文件名称,移动时高亮显示鼠标下的文件名称

bool bMouseDown = Input.GetMouseButtonDown (0);

bool bMouseMove = Input.GetMouseButton (0);

bool bMouseUp = Input.GetMouseButtonUp (0);

float x=Input.mousePosition.x;

float y=Screen.height-Input.mousePosition.y;

if(bMouseDown)

{

filex=x;

filey=y;

nPath=NCMouseEvent(1,(Int32)x,(Int32)y,sPath);

}

else if(bMouseUp)

{

nPath=NCMouseEvent(3,(Int32)x,(Int32)y,sPath);

}

else

{

if(filex!=x||filey!=y)

{

filex=x;

filey=y;

if(bMouseMove)

NCMouseEvent(2,(Int32)x,(Int32)y,sPath);

else

NCMouseEvent(4,(Int32)x,(Int32)y,sPath);

}

}

}

if(nPath>0)

{

filePath= System.Text.Encoding.Unicode.GetString(sPath,0,nPath);

var pos=filePath.LastIndexOf("\\");

if(pos==filePath.Length-1) //目录

{

fileInput="";

}

else{

fileInput=filePath.Substring(pos+1);

filePath=filePath.Substring(0,pos+1);

}

}

}

该组件还可以用于播放视频和,

视频聊天

,直接下载源代码看吧,打开如下地址,右边下载unity3d二次开发源码,这里不知道怎么上传文件。
http://www.enen6.com/GameV.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: