【Unity】 HTFramework框架(六十四)SaveDataRuntime运行时保存组件参数、预制体

更新日期:2025年4月1日。

Github 仓库:https://github.com/SaiTingHu/HTFramework

Gitee 仓库:https://gitee.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保存预制体即可:

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

相关推荐
有趣的我2 小时前
vim的操作
编辑器·vim·excel
牙膏上的小苏打23336 小时前
Unity Surround开关后导致获取主显示器分辨率错误
unity·主屏幕
『六哥』6 小时前
Windows 10 如何设置右击鼠标快速进行“关机”
windows·经验分享·编辑器
Unity大海8 小时前
诠视科技Unity SDK开发环境配置、项目设置、apk打包。
科技·unity·游戏引擎
浅陌sss14 小时前
Unity中 粒子系统使用整理(一)
unity·游戏引擎
维度攻城狮18 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
为你写首诗ge21 小时前
【Unity网络编程知识】FTP学习
网络·unity
1alisa1 天前
Sublime Text for Mac v4【注册汉化版】代码编辑器
macos·编辑器·sublime text
菲fay1 天前
Unity 单例模式写法
unity·单例模式