Files
2026-06-14 22:49:28 +08:00

97 lines
3.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Kirurobo
{
/// <summary>
/// 基础文件面板示例
/// </summary>
public class FileDialogSample : MonoBehaviour
{
public Button openFileButton;
public Button openMultipleFilesButton;
public Button saveFileButton;
public Text messageText;
// 首次更新前调用 Start
void Start()
{
openFileButton.onClick.AddListener(OpenSingleFile);
openMultipleFilesButton.onClick.AddListener(OpenMultipleFiles);
saveFileButton.onClick.AddListener(OpenSaveFile);
messageText.text = "点击按钮!";
}
// 每帧调用 Update
void Update()
{
}
/// <summary>
/// 打开单个文件的对话框。
/// </summary>
private void OpenSingleFile() {
FilePanel.Settings settings = new FilePanel.Settings();
settings.filters = new FilePanel.Filter[]
{
new FilePanel.Filter("所有文件", "*"),
new FilePanel.Filter("图片文件 (*.png;*.jpg;*.jpeg;*.tiff;*.gif;*.tga)", "png", "jpg", "jpeg", "tiff", "gif", "tga"),
new FilePanel.Filter("文档 (*.txt;*.rtf;*.doc;*.docx)", "txt", "rtf", "doc", "docx"),
};
settings.title = "打开文件!";
settings.initialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyPictures);
messageText.text = "";
FilePanel.OpenFilePanel(settings, (files) =>
{
messageText.text = "打开文件\n" + string.Join("\n", files);
});
}
/// <summary>
/// 打开多个文件的对话框。
/// </summary>
private void OpenMultipleFiles() {
FilePanel.Settings settings = new FilePanel.Settings();
settings.filters = new FilePanel.Filter[]
{
new FilePanel.Filter("图片文件 (*.png;*.jpg;*.jpeg;*.tiff;*.gif;*.tga)", "png", "jpg", "jpeg", "tiff", "gif", "tga"),
new FilePanel.Filter("文档 (*.txt;*.rtf;*.doc;*.docx)", "txt", "rtf", "doc", "docx"),
new FilePanel.Filter("所有文件", "*"),
};
settings.flags = FilePanel.Flag.AllowMultipleSelection;
settings.title = "打开多个文件!";
settings.initialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
messageText.text = "";
FilePanel.OpenFilePanel(settings, (files) =>
{
messageText.text = "打开多个文件\n" + string.Join("\n", files);
});
}
/// <summary>
/// 打开保存文件对话框。
/// </summary>
private void OpenSaveFile() {
FilePanel.Settings settings = new FilePanel.Settings();
settings.filters = new FilePanel.Filter[]
{
new FilePanel.Filter("文本文件 (*.txt;*.log)", "txt", "log"),
new FilePanel.Filter("图片文件 (*.png;*.jpg;*.jpeg;*.tiff;*.gif;*.tga)", "png", "jpg", "jpeg", "tiff", "gif", "tga"),
new FilePanel.Filter("所有文件", "*"),
};
settings.title = "实际上不会执行保存操作";
settings.initialFile = "Test.txt";
messageText.text = "";
FilePanel.SaveFilePanel(settings, (files) =>
{
messageText.text = "选中的文件\n" + string.Join("\n", files);
});
}
}
}