You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot编辑器中如何为节点添加可选择文件的导出属性?

实现Godot自定义节点导出文件选择属性的方法

你直接导出File类型的属性是无法在编辑器中实现文件选择的,因为Godot的导出系统不支持直接编辑File类实例。要实现可视化选择文件路径并关联到变量,正确的做法是导出字符串类型的路径,配合属性提示指定文件过滤器,再在运行时通过路径初始化File对象。

代码示例(C#)

[GlobalClass]
public partial class MyObj : Node2D
{
    // 导出文件路径,指定可选择的文件类型过滤器
    [Export(PropertyHint.File, "*.txt,*.json")]
    public string TargetFilePath { get; set; }

    private File _myFile;

    public override void _Ready()
    {
        _myFile = new File();
        // 若路径有效则打开文件
        if (!string.IsNullOrEmpty(TargetFilePath))
        {
            Error openError = _myFile.Open(TargetFilePath, File.ModeFlags.Read);
            if (openError != Error.Ok)
            {
                GD.PrintErr($"打开文件失败: {openError}");
            }
            // 这里可以添加文件读取/写入逻辑
        }
    }

    public override void _ExitTree()
    {
        // 退出时关闭并释放文件资源
        if (_myFile.IsOpen())
        {
            _myFile.Close();
        }
        _myFile.Dispose();
    }
}

关键说明

  • 属性提示的作用:PropertyHint.File会让编辑器为该字符串属性生成文件选择按钮,点击后弹出文件选择对话框,选中的文件路径会自动填充到属性框中。第二个参数是过滤器,比如"*.png,*.jpg"限制选择图片,"*"允许选择所有文件。
  • 为什么不用File直接导出:File是运行时的操作类,编辑器无法序列化和持久化它的状态,只能通过存储路径的方式,在游戏运行时动态初始化文件对象。
  • 资源释放:记得在节点退出树时关闭文件并释放资源,避免内存泄漏。

内容的提问来源于stack exchange,提问作者user8322140

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:57:02