版本:Unity 6 (6000.0)
选择语言简体中文
  • C#

EditorUtility.CopySerializedManagedFieldsOnly

提出变更建议

成功!

感谢您帮助我们提高 Unity 技术文档的质量。尽管我们无法接受所有提交的内容,但我们会阅读用户提出的每项变更建议,并在必要时进行更新。

关闭

提交失败

由于某些原因,无法提交您建议的更改。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 技术文档的质量。

关闭

取消

声明

public static void CopySerializedManagedFieldsOnly(object source, object dest);

参数

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

说明

将可序列化的字段从一个托管对象复制到另一个托管对象。

此方法类似于 CopySerialized,但您可以将它与任何两个托管对象配合使用,而不是同一个 Object 子类的两个实例。

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

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

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