| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | 
							- using System;
 
- using System.Collections.Generic;
 
- using UnityEditor;
 
- using UnityEngine;
 
- using Object = UnityEngine.Object;
 
- namespace EnhancedHierarchy
 
- {
 
-     public static partial class EnhancedHierarchy
 
-     {
 
-         public const int UNLAYERED = 0;
 
-         public const string UNTAGGED = "Untagged";
 
-         public const float ALPHA_THRESHOLD = 0.01f;
 
-         private static readonly GUIContent trailingContent = new GUIContent("...");
 
-         public static string GameObjectName { get; private set; }
 
-         public static string GameObjectTag { get; private set; }
 
-         public static bool IsFirstVisible { get; private set; }
 
-         public static bool IsRepaintEvent { get; private set; }
 
-         public static bool IsGameObject { get; private set; }
 
-         public static bool HasTag { get; private set; }
 
-         public static bool HasLayer { get; private set; }
 
-         public static float LeftIconsWidth { get; private set; }
 
-         public static float RightIconsWidth { get; private set; }
 
-         public static float LabelSize { get; private set; }
 
-         public static Rect RawRect { get; private set; }
 
-         public static Rect FullSizeRect { get; private set; }
 
-         public static Rect FinalRect { get; private set; }
 
-         public static Rect SelectionRect { get; private set; }
 
-         public static Rect LabelOnlyRect { get; private set; }
 
-         public static Color CurrentColor { get; private set; }
 
-         public static Vector2 SelectionStart { get; private set; }
 
-         public static GUIStyle CurrentStyle { get; private set; }
 
-         public static GameObject CurrentGameObject { get; private set; }
 
-         public static List<Object> DragSelection { get; private set; }
 
-         public static readonly List<Component> Components = new List<Component>(100);
 
-         public static EventType LastEventType { get; private set; }
 
-         public static void SetItemInformation(int id, Rect rect)
 
-         {
 
-             if (!Preferences.Enabled)
 
-                 return;
 
-             using (ProfilerSample.Get("Enhanced Hierarchy"))
 
-             using (ProfilerSample.Get())
 
-                 try
 
-                 {
 
-                     CurrentGameObject = EditorUtility.InstanceIDToObject(id) as GameObject;
 
-                     IsGameObject = CurrentGameObject;
 
-                     IsRepaintEvent = Event.current.type == EventType.Repaint;
 
-                     IsFirstVisible = Event.current.type != LastEventType;
 
-                     LastEventType = Event.current.type;
 
-                     if (IsGameObject)
 
-                     {
 
-                         GameObjectName = CurrentGameObject.name;
 
-                         try
 
-                         {
 
-                             GameObjectTag = CurrentGameObject.tag;
 
-                         }
 
-                         catch
 
-                         {
 
-                             // I couldn't reproduce this, but it can happen
 
-                             if (Preferences.DebugEnabled)
 
-                                 Debug.LogWarning("Invalid gameobject tag", CurrentGameObject);
 
-                             GameObjectTag = "Untagged";
 
-                         }
 
-                         LabelSize = EditorStyles.label.CalcSize(Utility.GetTempGUIContent(GameObjectName)).x;
 
-                         LabelSize += Reflected.IconWidth + 5f; // Icon size 
 
-                         var labelOnlyRect = rect;
 
-                         labelOnlyRect.xMax = labelOnlyRect.xMin + LabelSize;
 
-                         LabelOnlyRect = labelOnlyRect;
 
-                         HasTag = !CurrentGameObject.CompareTag(UNTAGGED) || !Preferences.HideDefaultTag;
 
-                         HasLayer = CurrentGameObject.layer != UNLAYERED || !Preferences.HideDefaultLayer;
 
-                         CurrentStyle = Utility.GetHierarchyLabelStyle(CurrentGameObject);
 
-                         CurrentColor = CurrentStyle.normal.textColor;
 
-                         CurrentGameObject.GetComponents(Components);
 
-                     }
 
-                     if (IsFirstVisible)
 
-                         FinalRect = RawRect;
 
-                     RawRect = rect;
 
-                     rect.xMin = 0f;
 
-                     //rect.xMax = EditorGUIUtility.currentViewWidth;
 
-                     FullSizeRect = rect;
 
-                 }
 
-                 catch (Exception e)
 
-                 {
 
-                     Utility.LogException(e);
 
-                 }
 
-         }
 
-     }
 
- }
 
 
  |