| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | using UnityEditor;using UnityEngine;using UnityEngine.Profiling;namespace EnhancedHierarchy.Icons {    public sealed class Memory : IconBase {        private float m_width = 0f;        private static readonly GUIContent label = new GUIContent();        public override string Name { get { return "Memory Used"; } }        public override float Width { get { return m_width + 4f; } }        private GUIStyle Style { get { return Styles.applyPrefabStyle; } }        public override void Init() {            m_width = 0f;            if (!EnhancedHierarchy.IsGameObject)                return;            if (Preferences.Tooltips && !Preferences.RelevantTooltipsOnly)                label.tooltip = "Used Memory";            else                label.tooltip = string.Empty;            #if UNITY_5_6_OR_NEWER            var memory = Profiler.GetRuntimeMemorySizeLong(EnhancedHierarchy.CurrentGameObject);            #else            var memory = Profiler.GetRuntimeMemorySize(EnhancedHierarchy.CurrentGameObject);            #endif            if (memory == 0)                return;            label.text = EditorUtility.FormatBytes(memory);            m_width = Style.CalcSize(label).x;        }        public override void DoGUI(Rect rect) {            if (m_width <= 0f)                return;            rect.xMin += 2f;            rect.xMax -= 2f;            using(new GUIColor(Styles.backgroundColorEnabled))            EditorGUI.LabelField(rect, label, Style);        }    }}
 |