Version: 2020.3

EditorUtility.CopySerializedManagedFieldsOnly

切换到手册
public static void CopySerializedManagedFieldsOnly (object source, object dest);

参数

source 要从中复制数据的对象。
dest 要将数据复制到的对象。

描述

在不同的托管对象之间复制可序列化的字段。

这类似于 CopySerialized,但您可以将它与任何两个托管对象一起使用,但同一个 Object 子类的两个实例除外。

CopyScriptManagedFieldsOnly 复制 Unity 序列化程序支持的所有字段。如果目标对象与源对象不在同一类中,则该函数按名称匹配字段,或者使用 FormerlySerializedAs 属性来匹配字段。该函数不会修改目标对象上不可序列化的字段,或在源对象中没有对应字段的字段。

如果源对象实现 ISerializationCallbackReceiver 接口,则在读取任何数据之前调用其 OnBeforeSerialize 方法。同样,如果目标对象实现 ISerializationCallbackReceiver,则在数据已经复制到其字段之后调用其 OnAfterDeserialize 方法。

CopyScriptManagedFieldsOnly 仅复制托管代码中定义的字段。这意味着,如果您尝试复制 TransformLight 等引擎对象,CopyScriptManagedFieldsOnly 将不会复制任何数据,因为它们的所有可序列化字段都是在本机代码中定义的。