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);
- }
- }
- }
|