如图所示,在Unity Editor编辑器环境下编写这样一个功能:点击“浏览”按钮,打开一个窗口,选择文件夹并记录该文件夹的路径:
用到的API:EditorUtility类中的OpenFolderPanel方法:
代码语言:javascript复制// 摘要:
// Displays the "open folder" dialog and returns the selected path name.
// 参数:
// title:
//
// folder:
//
// defaultName:
[FreeFunction("RunOpenFolderPanel")]
public static string OpenFolderPanel(string title, string folder, string defaultName);
第一个参数title:表示打开的窗口的标题:
第二个参数folder:打开窗口时的默认路径,例如传入Application.dataPath,则打开时路径为项目工程的Assets路径:
第三个参数defaultName:打开窗口时,“文件夹:”后的默认名称:
测试代码:
代码语言:javascript复制using UnityEngine;
using UnityEditor;
public class Example : EditorWindow
{
//窗口菜单
[MenuItem("SKFramework/Example")]
private static void Open()
{
//打开窗口
GetWindow<Example>().Show();
}
//用于记录选择的文件夹路径
private string path;
private void OnGUI()
{
//水平布局
GUILayout.BeginHorizontal();
{
//行头
GUILayout.Label("路径", GUILayout.Width(50f));
//文本输入框 用于编辑并展示路径
path = GUILayout.TextField(path);
//点击浏览按钮,打开选择文件夹窗口 并用path记录选择的结果
if (GUILayout.Button("浏览", GUILayout.Width(50f)))
{
//param1:窗口标题
//param2: 打开窗口 默认路径
//param3:打开窗口 文件夹默认名称
path = EditorUtility.OpenFolderPanel("窗口标题", Application.dataPath, "123");
}
}
GUILayout.EndHorizontal();
}
}