Unity 弹出文件夹选择界面到指定目录

Unity编辑器弹出选择目录功能,但是默认打开选择只能定位到顶层目录,有没有方法定位到制定目录下
问题相关代码,请勿粘贴截图
/// <summary>
    /// 选择文件夹
    /// </summary>
    /// <param name="callBack"></param>
    /// <param name="title"></param>
    public static void SelectFolder(Action<string> callBack, string title = "请选择文件夹")
    {
        try
        {
            OpenDialogDir ofn2 = new OpenDialogDir();
            ofn2.pszDisplayName = new string(new char[2048]);
            ofn2.lpszTitle = title; // 标题  
            ofn2.ulFlags = 0x00000040; // 新的样式,带编辑框  
            IntPtr pidlPtr = SHBrowseForFolder(ofn2);

            char[] charArray = new char[2048];

            for (int i = 0; i < 2048; i++)
            {
                charArray[i] = '\0';
            }
            SHGetPathFromIDList(pidlPtr, charArray);
            string res = new string(charArray);
            res = res.Substring(0, res.IndexOf('\0'));
            if (Directory.Exists(res))
            {
                callBack?.Invoke(res);
            }

        }
        catch (Exception)
        {

        }
    }
}

如图所示

img

弹出选择界面到指定文件夹下,方便使用,不然每次从顶层目录查找不方便

SHBrowseForFolder这个函数还有很多api,我看了一下是有可以指定路径打开目录,具体你可以学习了解一下。
另外你也可以参考这篇博客的插件,使用也很方便:

Unity FileBrowser插件可打开本地资源浏览器(进行文件选择、保存等操作,适用于Windows、masOS)_周周的Unity小屋的博客-CSDN博客_unity打开浏览器 插件介绍插件版本是FileBrowser 1.2.2,可用于Windows和macOS上的本地文件对话框的简单包装器。 支持打开文件/文件夹,保存文件等操作,支持文件扩展名的过滤器。支持unity版本5.0.0 以上使用时需把插件拖至Plugins文件加下。插件demo演示插件提供了两个demo场景演示,一个是使用同步的方法打开本地资源浏览器,一个是使用异步方法打开。打开单个文件:打开文件夹:保存文件:FileBrowser API使用使用前引用命名空间:using Cross https://blog.csdn.net/qq_42437783/article/details/122255368