public static T InlineObjectField <T>(GUIContent label, T obj, EditorGUIX.FieldIcon icon = EditorGUIX.FieldIcon.None)
            where T : UnityEngine.Object
        {
            using (new EditorGUILayout.HorizontalScope())
            {
                var previousImage = label.image;
                label.image = EditorGUIX.GetIcon(icon, previousImage);
                EditorGUILayout.PrefixLabel(label);
                label.image = previousImage;

                var indent = EditorGUI.indentLevel;
                if (EditorGUI.indentLevel > 0)
                {
                    EditorGUI.indentLevel = 0;
                }

                obj = (T)EditorGUILayout.ObjectField(obj, typeof(T), false);

                EditorGUI.indentLevel = indent;
            }

            return(obj);
        }
        public static bool InspectorFoldout(bool value, GUIContent content, EditorGUIX.FieldIcon icon = EditorGUIX.FieldIcon.None)
        {
            var rect = GUILayoutUtility.GetRect(content, EditorGUIX.Styles.inspectorBackground, GUILayout.ExpandWidth(true));

            return(EditorGUIX.InspectorFoldout(rect, value, content, icon));
        }