用途:在 Godot 4.3+ 中创建自定义 Resource 作为数据容器,用于配置、物品定义、角色属性等场景树之外的数据,并实现 Inspector 集成。
主要能力:Resource 是引用计数数据对象,保存为 .tres(文本)或 .res(二进制),可直接在 Inspector 中编辑,默认加载一次并按路径共享,可嵌套在其他 Resource 与 PackedScene 中,且能跨场景切换保留。适用于物品定义、敌人配置、角色属性、技能定义、关卡元数据、对话树等。
使用方式:定义 class_name XxxData extends Resource,字段用 @export 暴露;C# 需 [GlobalClass] 才能被编辑器识别。在文件系统面板右键新建资源、填入字段后保存为 .tres,运行时用 load() 或 GD.Load<T>() 读取。可用 @tool、@icon、@export_group、@export_subgroup 改善编辑器体验;集合可用 Array[Entry] 导出或 ResourcePreloader;保存用 ResourceSaver.save()。
必要命令示例保持原样:load("res://data/items/health_potion.tres")、GD.Load<ItemData>("res://data/items/health_potion.tres")。
限制与注意:Resource 默认按引用共享,修改一处会影响所有引用者,需要实例独立状态时应调用 duplicate() 或 duplicate(true);Resource 没有场景树访问、_process 等生命周期钩子,不应放入逐帧逻辑;避免做成巨型单资源。不得从不可信来源加载 .tres/.res,因为其可能执行内嵌 GDScript。官方文档未提供收费标准与具体价格,暂未提供。