SuperAPI AI 工具集

unity-data-persistence

编程与开发

查看项目

更新于 10-16 06:49

技能介绍

用途:在 Unity 中实现专业的 Save/Load 系统,核心是数据绑定——可保存对象持有始终最新的 DTO 引用,使序列化近乎即时且与后端无关。灵感来自 adammyhre/Unity-Inventory-System。

主要能力:数据绑定模式,MonoBehaviour 持有自身 DTO 引用,保存只需序列化 GameData,无需轮询或遍历属性;IBind<T> 与 ISaveable 两个接口在场景加载时把场景实体接入存档数据;SerializableGuid 提供稳定快速的 GUID 标识(基于 int 比较),用于匹配存档数据与生成实体;可替换后端,IDataService + ISerializer 可用一行改动从本地 JSON 切换到 Cloud/Binary;多实体绑定,基于列表的 Bind<T, TData>(List<TData>) 处理敌人、生成器等多实体场景。

核心文件(最多 3 个):PersistenceCore.cs.txt(ISerializer、JsonSerializer、IDataService、ISaveable、IBind<T>、SerializableGuid);FileDataService.cs.txt(本地磁盘实现:Save、Load、Delete、DeleteAll、ListSaves);SaveLoadSystem.cs.txt(持久化 MonoBehaviour 编排器,含 Bind<T,TData>() 与公开 Save/Load/New API)。

使用方式:轻量路径无需绑定,扩展 GameData 字段后调用 SaveLoadSystem.Instance.SaveGame() 与 LoadGame("MySave");完整路径需创建实现 ISaveable 的 DTO、在 MonoBehaviour 上实现 IBind,并在 SaveLoadSystem.OnSceneLoaded 中调用 Bind<PlayerEntity, PlayerData>(gameData.playerData)。完整示例(含多实体绑定与后端替换)见 references/guide.md。

关键原则:先设计数据模型,DTO 结构即存档格式;从简单开始(GameData 扁平字段),仅当实体需要独立可恢复状态时再加绑定。

限制:资料未提供具体安装命令、收费、价格、平台支持范围与效果数据,暂未提供。