【Unity】通过FormerlySerializeAs避免Inspector中配置的数据丢失

通过Inspector配置的数据会以键值对的形式存储,字段名作为键,配置的数据作为值

若为场景物体上的配置,则存储于.unity场景文件中;若为资源文件(ScriptableObject、Prefab等),则存储于文件本身

因此,当重命名某字段时,会丢失对之前键值对的索引,导致配置的数据丢失。

为了解决这一问题,可在对字段进行重命名前,通过 FormerlySerializedAs(string oldName) 来标记之前的键值对的键,以避免数据丢失。

// 改名前
GameObject oldObject;

// 改名后
[FormerlySerializedAs("oldObject")]
GameObject newObject; // 改名后无法通过当前字段名找到对应键值对,则会通过oldObject来寻找

Tips

1、FormerlySerializedAs增加了寻找键值对时用到的键。当使用当前字段名寻找键值对失败时,则使用FormerlySerializedAs中的字段名来寻找键值对

2、在配置字段数据时,FormerlySerializedAs中的值不会影响键值对的存储,Unity只会考虑当前的字段名,并以其作为键值对的键来存储

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值