更新日期:2025年4月1日。
Github 仓库:https://github.com/SaiTingHu/HTFramework
索引
一、SaveDataRuntime运行时保存组件参数、预制体
众所周知,Unity编辑器在运行时对游戏物体的组件参数的修改是无法保存的,停止运行后会全部还原为编辑时的数据,这是因为Unity编辑器为运行时单独创建了一份数据,运行时
数据与编辑时
数据是两份独立的数据,所以针对运行时数据的修改,是无法存储到编辑时数据的。
不过,借助于一些插件以及本框架的SaveDataRuntime
工具,能够实现将运行时
数据存储为编辑时
数据,且SaveDataRuntime
提供了极其简单和友好的操作流程。
二、使用SaveDataRuntime
1.启用设置项
要使用SaveDataRuntime
工具,首先需要确保在全局启用了该功能(也即是说,如果不需要该功能,可以全局禁用,以避免多余的开销):

2.运行时保存组件
只要全局启用了SaveDataRuntime
,下一步即可在运行时保存组件了。
在运行时,所有组件的标题栏
均会显示一个保存
按钮:

当我们修改了此组件的任何参数,想要保存时,点击一下保存
按钮即可(已保存的组件按钮颜色会切换为绿色,再次点击则取消保存
,颜色切换为白色)。
比如,有如下Player
组件:

我们在运行时修改了其参数值,然后点击保存
按钮:

Tips:点击
保存
按钮后,组件并未立即保存,而是标记为保存状态
,将在编辑器退出运行时才会保存,在此期间可以继续修改该组件的参数。
3.停止运行后,保存组件确认
停止运行后,将会弹出保存组件确认框
:
Tips:
保存组件确认框
的作用是让你清晰的知道哪些组件即将被保存下来,不需要(误保存)的可以移除,由于运行时的数据千变万化,此过程可以避免误操作引起的数据覆盖。

其上会罗列出我们即将保存的所有组件。
Prefab Asset :为即将保存组件的目标预制体。
Changed Component :记录一个即将被保存的组件,点击Remove
按钮移除此组件,点击Apply
按钮应用组件的参数到目标预制体(也即是保存)。
此处的Apply
按钮为禁用状态,因为我们必须打开其所属的预制体
,才可应用保存,所以我们点击预制体最右面的Open
按钮,打开该预制体。
预制体打开后,我们点击某一个组件名称,将在场景中定位到该组件所属的游戏物体:

此时,点击Player
组件的Apply
按钮,此组件的运行时参数将会全部保存(覆盖)到目标预制体:

Tips:
Apply
过程是支持撤销的,Ctrl + Z
即可撤销已保存的组件。
4.保存所有组件
如果你不需要一个个组件的Apply
以防止错误覆盖,且已明确知晓即将保存的所有组件中没有误操作、误保存的组件,也可以点击Apply All
按钮,一键将所有组件保存,然后Ctrl + S
保存预制体即可:

经过以上简单的流程,便可完成将运行时
组件参数保存到编辑时
的操作。