123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using System.Linq;
- using UnityEditor;
- using UnityEngine;
- namespace EnhancedHierarchy.Icons {
- public sealed class RendererToggle : IconBase {
- private Renderer renderer;
- public override IconPosition Side { get { return IconPosition.All; } }
- public override string Name { get { return "Renderer"; } }
- public override Texture2D PreferencesPreview { get { return Utility.GetBackground(Styles.rendererToggleStyle, true); } }
- //public override string PreferencesTooltip { get { return "Some tag for the tooltip here"; } }
- public override void Init() {
- renderer = EnhancedHierarchy.Components.FirstOrDefault(c => c is Renderer)as Renderer;
- }
- public override float Width { get { return renderer ? base.Width : 0; } }
- public override void DoGUI(Rect rect) {
- if (!renderer)
- return;
- using(new GUIBackgroundColor(renderer.enabled ? Styles.backgroundColorEnabled : Styles.backgroundColorDisabled)) {
- GUI.changed = false;
- GUI.Toggle(rect, renderer, Styles.rendererContent, Styles.rendererToggleStyle);
- if (!GUI.changed)
- return;
- var objs = GetSelectedObjectsAndCurrent().SelectMany(go => go.GetComponents<Renderer>());
- var active = !renderer.enabled;
- Undo.RecordObjects(objs.ToArray(), renderer.enabled ? "Disabled renderer" : "Enabled renderer");
- foreach (var obj in objs)
- obj.enabled = active;
- }
- }
- }
- }
|