public override void OnInspectorGUI() { DragonBehaviour behaviour = (DragonBehaviour)target; var gameStates = behaviour.GetType().GetCustomAttributes(typeof(GameStateAttribute), true) .Cast <GameStateAttribute>().Select(attribute => attribute.GameState).ToList(); GUI.enabled = false; GUILayout.Space(10f); if (gameStates.Any()) { GUILayout.BeginHorizontal(); var gameStatesString = gameStates.Aggregate("", (current, gameState) => current + (gameState + ", ")); GUILayout.Label("GameStates", GUILayout.Width(EditorGUIUtility.labelWidth)); GUILayout.Label(gameStatesString.TrimEnd(',', ' ')); GUILayout.EndHorizontal(); } else { GUILayout.Label("No GameState Attributes", new GUIStyle { alignment = TextAnchor.MiddleCenter }); } GUILayout.Space(10f); GUI.enabled = true; DrawDefaultInspector(); }