SuperAPI AI 工具集

godot-resources

编程与开发

查看项目

更新于 10-16 05:48

技能介绍

用途:把游戏数据建模为可复用、可在 Inspector 编辑的 Resource 对象,替代硬编码数值,并以 .tres/.res 保存与加载。适用于物品、属性、敌人配置、对话行、关卡元数据等数据表达,以及在 Inspector 中编写 .tres 或加载/保存自定义资源。不适用于节点与场景结构(见 godot-nodes-scenes)、玩家运行时进度存档(见 save-systems)以及该模式的 C# 变体(见 godot-csharp)。

主要能力与用法:继承 Resource 并用 class_name 与 @export 字段声明,类会出现在“New Resource”对话框并可作为 @export 类型。在 FileSystem 面板创建 .tres(文本、便于 diff)或 .res(二进制、更小更快)实例,直接在 Inspector 填字段。节点通过 @export var data: ItemResource 或 @export var loot: Array[ItemResource] 引用资源。运行时用 preload(常量路径)或 load/ResourceLoader.load(变量路径)加载,大资源可用线程加载。运行时修改共享资源前先 duplicate,否则所有引用它的节点都会改变。用 ResourceSaver.save 保存生成或编辑后的资源。

限制与注意:资源按引用共享,同一个 .tres 被多个节点引用时是同一对象,需用 duplicate(true) 获得每实例状态。必须有 class_name 才能从编辑器实例化。导出后 res:// 只读,运行时数据写入 user://,ResourceSaver.save 到 res:// 仅在编辑器有效。Resource 中存节点不会序列化,应通过 PackedScene 引用场景。循环引用可能导致保存/加载失败,应保持数据图无环或改用 ID 查找。preload 需常量路径,load 支持变量路径,加载前可用 ResourceLoader.exists() 避免报错。.tres 以明文随导出包发布,不要放密钥。线程/后台加载、@tool 资源、自定义 ResourceFormatLoader/Saver、场景局部资源与资源 UID 等细节见 references/resource-patterns.md。