Unity 中实现文件选择功能的技巧

想在 Unity 游戏里让玩家选择文件?Unity 2017.1.0f3 版本没有直接提供像 OpenFileDialog 这样的组件,但我们可以用其他方法实现。

方法一:借助 Unity 编辑器

在编辑器环境下,我们可以使用 UnityEditor.FileDialog 类来创建文件选择窗口。但这招只在编辑器里有效,游戏打包后就不行了。

using UnityEngine;
using UnityEditor;

public class OpenFileDialogExample : MonoBehaviour
{
    [MenuItem("File/Open File")]
    static void OpenFile()
    {
        string path = UnityEditor.EditorUtility.OpenFilePanel("选择文件", "*", "*");
        if (!string.IsNullOrEmpty(path))
        {
            Debug.Log("选中的文件:" + path);
            // 处理选中的文件
        }
    }
}

这段代码会在菜单栏创建一个“File/Open File”选项,点击后弹出文件选择窗口,选中文件后路径会打印到控制台。

方法二:调用系统对话框

对于打包好的游戏,可以用 Application.OpenURL 方法调用系统自带的文件选择窗口。不过这种方式需要玩家手动复制粘贴文件路径,体验不太好。

using UnityEngine;
using System.Diagnostics;

public class OpenFileDialogExample : MonoBehaviour
{
    public void OpenFile()
    {
        // ... 根据系统平台决定打开方式 ...
    }
}

这段代码需要根据不同的操作系统 (Windows, macOS, Linux) 来决定如何打开文件选择窗口。

zip 文件大小:1014.18KB