unity Editor的target和serializedObject

发布时间 2023-09-18 17:15:09作者: mc宇少

转自:Editor.target 与 Editor.serializedObject | 那些遇到过的问题 (1r1g.com)

首先,有一个CanEditMultipleObjects您目前没有使用的选项。文档中的引用:

如果使用这种方法,用户可以在层次结构窗口中选择多个资产并一次更改所有资产的值。
作为一个基本示例,GameObjects在场景中选择两个具有相同 Unity 组件(如ImageRigidbody)的组件,您将能够同时修改这些组件以具有相同的值。大多数内置组件都支持它。
这是使用serializedObject会给你的第一个优势;它支持多对象编辑,Editor.target但不支持(您需Editor.targets要这样做)。所以现在如果你想知道,“为什么我不只是Editor.targets用于多对象编辑? ”考虑一下文档中的引用:
与其直接修改脚本变量,不如使用 SerializedObject 和 SerializedProperty 系统来编辑它们,因为这会自动处理多对象编辑、撤消和预制覆盖。
这归结为,如果您不想为您自动处理撤消、预制覆盖和多对象编辑功能,只需使用Editor.targetEditor.targets。如果您确实希望这些功能自动运行,请使用SerializedObjectSerializedProperty