【案例】Unity 平台访问文件浏览器(汇总)

开发平台:Unity 2020

编程平台:Visual Studio 2022

使用 UnityEditor.EditorUtility.OpenFilePanel


使用背景:仅限制在编辑器模式下可用。无法参与发布项目中调用。

csharp 复制代码
public void ReadFile<T>()
{
	var thisFile = Selection.activeObject as T;
	if(thisFile != null)
	{
		var thisFilePath = EditorUtility.OpenFilePanel("标题", "打开目录路径", ".*", false);
		if(string.isNullOrEmpty(thisFilePath))
		{
			var thisFileBytes = File.ReadAllBytes(thisFilePath);
			thisFile.LoadImage(fileContent);
		}
	}
}

核心方法

复制代码
UnityEditor.EditorUtility.OpenFilePanel(string title, string directory, string extension, bool multiselect)

附注: directory=string.Empty:指向 Asset 目录路径

使用 System.Windows.Forms.OpenFileDialog


如果期望于发布项目中调用文件对话窗,则需要引入 System.Windows.Forms.dll 程序集至 plugin 目录中。

csharp 复制代码
public static bool OpenFile(string rootPath = UnityEngine.Application.dataPath, out string filePath)
{
	if (string.IsNullOrEmpty(rootPath))
	{
		filePath = string.empty;
		return false;
	}
	
	OpenFileDialog openFileDialog = new OpenFileDialog
	{
    	Title = "选择文件",                                      // 对话框标题
    	InitialDirectory = @"C:\\",                             // 初始目录
    	Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*",    // 文件过滤器
    	FilterIndex = 2,                                       // 默认过滤器索引
    	RestoreDirectory = true,                               // 是否恢复之前的目录
    	Multiselect = false                                    // 是否允许多选
	};
	
	bool isOk = thisDialog.ShowDialog().OK;
	filePath =  isOk ?
		thisDialog.FileName : string.Empty;
	return isOk;
}
相关推荐
2401_894915531 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
WarPigs3 小时前
PC端加载安卓AB包资源显示紫色的问题
unity
scott.cgi5 小时前
Unity使用AndroidX获取,导航栏与虚拟键盘的高度
unity·androidx·keyboard·导航栏高度·虚拟键盘高度·判断键盘关闭·获取虚拟键盘高度
丁小未7 小时前
Unity车机地图Tile流式渲染系统高性能架构方案
unity·架构·ecs·dots·车机系统·车机系统架构图
LONGZETECH11 小时前
工业实训仿真设计实践:电机拆装软件的 DAG 流程建模、工具精度分级与数据体系搭建
大数据·算法·unity·架构·汽车
派葛穆1 天前
Unity-UI 按钮点击弹窗功能
unity·游戏引擎
toponad1 天前
Unity Ads Bidding 现已正式加入TopOn 聚合平台
unity·topon
unityのkiven1 天前
Unity UGUI 实战:动态生成任务面板
unity·游戏引擎
郝学胜-神的一滴1 天前
中级OpenGL教程 026:Assimp库从编译到实战全攻略
c++·unity·游戏引擎·图形渲染·unreal engine·opengl
凯尔3152 天前
Unity简单涂料实现
unity·游戏引擎·图形渲染