赞
踩
从Unity3.5开始,你可以在检视面板中同时选择和编辑多个类型相同的对象。任何修改过的属性都会被应用到选中的对象上。如果你想在许多对象上做相同的改变这会节约大量的时间。
在选择多个对象时,在检视面板上只有那些在所有被选中的对象上出现的组件才会被显示出来。如果组件只存在与某些被选中对象上,那么在检视面板底部出现一个小的提示,指示那些仅仅在部分被选中对象中存在的组件不能被多重编辑。
当多个对象被选中后,在检视面板上显示的每个属性都代表每个被选中对象的属性。如果所有对象上的属性值都相同,那么这个值会被正常显示,就好像在编辑单个对象一样。但如果属性值在被选中对象上不都相同,那么没有值被显示而是用短划线之类取代显示来说明这些值是不同的。
Multi-edit of two objects
无论是值还是短划线被显示,这个属性值通常都能够被编辑同时被改变的值都会被应用到所有被选中的对象上。如果这些属性值不同从而被显示为短划线,任然可以在属性标签上右击。从而弹出一个菜单让你悬着从哪个对象上继承属性值。
选择从哪个对象上获取值
在场景中预设件能够像游戏对象一样被多重编辑。预设或模型的实例也能够被多重编辑。然而也存在某些限制:当编辑单个预设件或模型的实例时,任何与预设件或模型不同的属性都会以粗体显示,右击鼠标会有一个用来从预设或模型中恢复属性值的选项。此外,游戏对象有选项可以用来应用或恢复所有的更改。当进行多重编辑时,一下这些都是不可用的。属性不能被恢复或应用;和预设或模型不同的属性不会以粗体显示。需要提醒您的是,检视面板会提示实例管理失效然后选择,恢复和应用按钮会出现。
Instance Managment Disabled for multi-edit of prefabs 对于多重编辑的预设件实例管理失效
少数对象类型不支持多重编辑。当你同时选择多个对象时,立马会显示一个小提示告知"多重对象编辑不被支持"。
如果你使用自己的编辑器来编辑你自己的脚本。如果它不能支持多重编辑的话也会显示这个消息。参考脚本手册里的 编辑器类 了解如何在你自己的编辑器中实现多重对象编辑的支持。
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(SpawnBox))]
- public class SingleInspector : Editor
- {
- public override void OnInspectorGUI()
- {
- base.DrawDefaultInspector();
-
- SpawnBox _box = target as SpawnBox;
- _box.direction = Direction.Up;
-
- EditorUtility.SetDirty(target);
- }
- }

- using UnityEngine;
- using UnityEditor;
-
- [CanEditMultipleObjects]
- [CustomEditor(typeof(SpawnBox))]
- public class MultipleInspector : Editor
- {
- public override void OnInspectorGUI()
- {
- base.DrawDefaultInspector();
-
- foreach (Object obj in targets)
- {
- SpawnBox _box = obj as SpawnBox;
- _box.direction = Direction.Up;
-
- EditorUtility.SetDirty(obj);
- }
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。