123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using UnityEditor;
- using UnityEngine;
- namespace EnhancedHierarchy.Icons {
- public sealed class Static : IconBase {
- public override IconPosition Side { get { return IconPosition.All; } }
- public override Texture2D PreferencesPreview { get { return Utility.GetBackground(Styles.staticToggleStyle, false); } }
- //public override string PreferencesTooltip { get { return "Some tag for the tooltip here"; } }
- public override void DoGUI(Rect rect) {
- using(new GUIBackgroundColor(EnhancedHierarchy.CurrentGameObject.isStatic ? Styles.backgroundColorEnabled : Styles.backgroundColorDisabled)) {
- GUI.changed = false;
- GUI.Toggle(rect, EnhancedHierarchy.CurrentGameObject.isStatic, Styles.staticContent, Styles.staticToggleStyle);
- if (!GUI.changed)
- return;
- var isStatic = !EnhancedHierarchy.CurrentGameObject.isStatic;
- var selectedObjects = GetSelectedObjectsAndCurrent();
- var changeMode = AskChangeModeIfNecessary(selectedObjects, Preferences.StaticAskMode.Value, "Change Static Flags",
- "Do you want to " + (!isStatic ? "enable" : "disable") + " the static flags for all child objects as well?");
- switch (changeMode) {
- case ChildrenChangeMode.ObjectOnly:
- foreach (var obj in selectedObjects) {
- Undo.RegisterCompleteObjectUndo(obj, "Static Flags Changed");
- obj.isStatic = isStatic;
- }
- break;
- case ChildrenChangeMode.ObjectAndChildren:
- foreach (var obj in selectedObjects) {
- Undo.RegisterFullObjectHierarchyUndo(obj, "Static Flags Changed");
- var transforms = obj.GetComponentsInChildren<Transform>(true);
- foreach (var transform in transforms)
- transform.gameObject.isStatic = isStatic;
- }
- break;
- }
- }
- }
- }
- }
|