作用:在编辑器面板上持久序列化一个接口或者抽象类对象
特点:
1.添加SerializeReference
后, 即使字段是私有的, 也无需添加SerializeField
属性, 二者同有将私有字段序列化的能力.
2.SerializeReference
属性允许字段为null
, 这点与默认序列化行为不同, 默认序列化会自动实例化一个值
3.添加[field: SerializeField]
后, 属性也可以像字段一样被序列化, 但是其label
会显示为<属性名>k__BackingField
, 如果不希望这种现象,可以将属性转化为完整属性并为对应的私有字段添加SerializeField
.
4.SerializeReference
还可以修饰List<T>
和T[]
用处:
比如当你想要像public int a;一样在Inspector面板持久序列化保存一个接口或者抽象类对象变量数据,或者在ScriptableObject中持久序列化保存接口或者抽象类对象变量数据,这时你就需要为变量添加[SerializeReference]特性