コード例 #1
0
ファイル: AutoDumper.cs プロジェクト: Greifherz/Debugatron2.0
 void OnApplicationQuit()
 {
     Debugatron.DumpLogHistory();
 }
コード例 #2
0
    public override void OnInspectorGUI()
    {
        if (groupToAdd == null)
        {
            groupToAdd = new DebugGroup("Group Name", Color.white, Color.white);
        }

        DebugGroupConfig Config = (DebugGroupConfig)target;

        Config.hideFlags = HideFlags.None;

        #region Add Group
        GUILayout.Label("Add Group", EditorStyles.boldLabel);

        GUILayout.BeginVertical("Box");

        TextField(ref groupToAdd.Name, "Group Name");

        if (!groupToAdd.Name.Equals("") && Config.HasGroup(groupToAdd.Name))
        {
            var l = groupToAdd.Name.Equals("Default") ? "Group name reserved. Check settings." : "Group name already being used.";
            GUILayout.Label(l, EditorStyles.boldLabel);
        }
        else if (groupToAdd.Name.Equals(""))
        {
            GUILayout.Label("Invalid Group Name.", EditorStyles.boldLabel);
        }

        ColorField(ref groupToAdd.GroupColor, "Group Color");
        ColorField(ref groupToAdd.DebugColor, "Debug Color");

        EditorGUILayout.Space();

        GUI.backgroundColor = Color.green;
        if (GUILayout.Button("Add Group") && !Config.HasGroup(groupToAdd.Name))
        {
            Config.AddGroup(groupToAdd);
            groupToAdd = new DebugGroup("Group Name", Color.white, Color.white);
        }
        GUI.backgroundColor = Color.white;

        GUILayout.EndVertical();
        GUIHorizontalLine();
        #endregion

        #region Registered Groups
        GUILayout.Label("Registered Debug Groups", EditorStyles.boldLabel);

        scroll = EditorGUILayout.BeginScrollView(scroll, GUILayout.ExpandHeight(true));

        if (Config.DebugGroups == null)
        {
            Config.DebugGroups = new List <DebugGroup>();
        }

        if (Config.DebugGroups.Count > 0)
        {
            for (int i = 0; i < Config.DebugGroups.Count; i++)
            {
                DebugGroup Group = Config.DebugGroups[i];
                EditorGUILayout.LabelField("Id: " + Group.Id.ToString(), EditorStyles.boldLabel);

                GUILayout.BeginVertical("Box");
                EditorGUIUtility.labelWidth = 100;

                if (i == 0)
                {
                    GUILayout.Label("Default");
                }
                else
                {
                    TextField(ref Group.Name, "Group Name");
                }

                if (i > 0)
                {
                    BoolField(ref Group.Allowed, "Enabled?");
                }

                BoolField(ref Group.Store, "Can Store?");
                BoolField(ref Group.Externalize, "Can Externalize?");
                ColorField(ref Group.GroupColor, "Group Color");
                ColorField(ref Group.DebugColor, "Debug Color");

                GUILayout.Space(5);
                GUILayout.BeginHorizontal();

                if (Application.isPlaying)
                {
                    if (GUILayout.Button("Dump Group"))
                    {
                        Debugatron.DumpLogHistory(Group);
                    }
                }

                GUI.backgroundColor = Color.red;
                if (i > 0)
                {
                    if (GUILayout.Button("Remove Group"))
                    {
                        Config.RemoveGroup(Group.Name);
                        i--;
                    }
                }
                GUI.backgroundColor = Color.white;
                GUILayout.EndHorizontal();

                GUILayout.EndVertical();
                EditorGUILayout.Space();
            }
        }
        else
        {
            DebugGroup DefaultGroup = new DebugGroup("Default", Color.white, Color.white);
            Config.AddGroup(DefaultGroup);
        }

        EditorGUILayout.EndScrollView();
        #endregion

        if (hasChange)
        {
            hasChange = false;
            EditorUtility.SetDirty(target);
        }
    }