UEDL11-2——文件面板相关

本章代码关键字

1
2
3
4
5
EditorUtility.SaveFilePanel()            //通常用于在编辑器中保存新创建的文件或选择文件的保存路径,该方法会返回用户选择的文件路径
EditorUtility.SaveFilePanelInProject() //与SaveFilePanel()类似,但该方法会将保存路径限制在项目目录中,只允许选择项目内的文件夹作为保存路径
EditorUtility.SaveFolderPanel() //通常用于在编辑器中选择一个文件夹作为保存路径,用于保存文件或执行其他与文件夹相关的操作
EditorUtility.OpenFilePanel() //通常用于在编辑器中选择文件进行打开或执行其他与文件相关的操作
EditorUtility.OpenFolderPanel() //通常用于在编辑器中选择文件夹进行打开或执行其他与文件夹相关的操作

显示 文件 存储面板

EditorUtility.SaveFilePanel()​方法通常用于在编辑器中保存新创建的文件或选择文件的保存路径

  • 参数一:窗口标题
  • 参数二:打开的目录
  • 参数三:保存的文件名称
  • 参数四:文件后缀名(传入的后缀名不需要额外加.​)
  • 返回值:在文件存储面板下选择的文件路径(选择取消则返回空字符串)

假设要把Test.txt​保存到Asset文件夹下(返回值为该路径):

1
2
3
4
5
6
7
8
9
10
private void OnGUI()
{
if (GUILayout.Button("打开文件存储面板"))
{
string path = EditorUtility.SaveFilePanel("打开我的文件", Application.dataPath, "Test", "txt");
Debug.Log(path);
if (!string.IsNullOrEmpty(path))
File.WriteAllText(path, "123123123123");
}
}

显示效果:image

输出内容(点击保存):
image​​image

显示 文件 存储面板(默认指定在Asset文件夹中)

EditorUtility.SaveFilePanelInProject()​ 与 SaveFilePanel​ 类似,
但是它将保存路径限制在项目目录中,只允许用户选择项目内的文件夹作为保存路径

  • 参数一:窗口标题
  • 参数二:保存的文件名称
  • 参数三:后缀名(传入的后缀名不需要额外加.​)
  • 参数四:在对话框窗口中显示的文本摘要(在Windows平台下不能显示)
  • 返回值:在文件存储面板下选择的文件路径(选择取消则返回空字符串,仅返回以Assets/​开头的文件夹路径)
1
2
3
4
5
if (GUILayout.Button("打开文件存储面板(仅限于工程文件夹下)"))
{
string str = EditorUtility.SaveFilePanelInProject("保存项目内的文件", "Test2", "png", "自定义文件");
Debug.Log(str);
}

显示效果:image

输出内容(点击保存):image

显示 文件夹 存储面板

EditorUtility.SaveFolderPanel​,通常用于在编辑器中选择一个文件夹作为保存路径,用于保存文件或执行其他与文件夹相关的操作

  • 参数一:窗口标题
  • 参数二:默认打开的文件夹的路径
  • 参数三:默认选择的文件夹的名称
  • 返回值:选择的文件夹的路径(选择取消则返回空字符串,仅返回文件夹路径而没有文件名,文件夹路径末尾不包含/​)
1
2
3
4
5
6
7
8
private void OnGUI()
{
if (GUILayout.Button("显示文件夹存储面板"))
{
string str = EditorUtility.SaveFolderPanel("得到一个存储路径(文件夹)", Application.dataPath, "Scripts");
Debug.Log(str);
}
}

显示效果:image

输出内容(点击选择文件夹):image

显示打开 文件 面板

EditorUtility.OpenFilePanel()​方法通常用于在编辑器中选择文件进行打开或执行其他与文件相关的操作,常用于打开文件

  • 参数一:窗口标题
  • 参数二:默认打开的文件夹的路径
  • 参数三:要打开的文件的后缀名(传入的后缀名不需要额外加.​)
  • 返回值:在打开文件面板下选择的文件路径(选择取消则返回空字符串)
1
2
3
4
5
6
7
8
9
10
11
private void OnGUI()
{
if (GUILayout.Button("显示打开文件面板"))
{
string str = EditorUtility.OpenFilePanel("得到一个打开路径", Application.dataPath, "txt");
if (!string.IsNullOrEmpty(str))
{
Debug.Log(File.ReadAllText(str));
}
}
}

显示效果:image

输出内容(点击打开):image

显示打开 文件夹 面板

EditorUtility.OpenFolderPanel()​ 通常用于在编辑器中选择文件夹进行打开或执行其他与文件夹相关的操作

  • 参数一:窗口标题
  • 参数二:默认打开的文件夹的路径
  • 参数三:默认要打开的文件夹名
  • 返回值:选择的文件夹的路径(选择取消则返回空字符串,仅返回文件夹路径而没有文件名,文件夹路径末尾不包含/​)
1
2
3
4
5
6
7
8
private void OnGUI()
{
if (GUILayout.Button("显示打开文件夹面板"))
{
string str = EditorUtility.OpenFolderPanel("得到一个文件夹路径", Application.dataPath, "Scripts");
Debug.Log(str);
}
}

显示效果:image

输出内容(点击选择文件夹):image