private void ShowChildren(GroupDecider decider)
    {
        var selectedTypeIndex = EditorGUILayout.Popup("Children", -1, btTypeNames,
                                                      GUILayout.ExpandWidth(false));

        EditorGUI.indentLevel += 1;
        for (int i = 0; i < decider.Children.Count; i++)
        {
            var child = decider.Children[i];
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(" ", GUILayout.Width(10));
            if (i > 0)
            {
                if (GUILayout.Button("Up", GUILayout.ExpandWidth(false)))
                {
                    Undo.RecordObject(decider, "Move child up");
                    var temp = decider.Children[i];
                    decider.Children[i]     = decider.Children[i - 1];
                    decider.Children[i - 1] = temp;
                }
            }
            if (i < decider.Children.Count - 1)
            {
                if (GUILayout.Button("Down", GUILayout.ExpandWidth(false)))
                {
                    Undo.RecordObject(decider, "Move child down");
                    var temp = decider.Children[i];
                    decider.Children[i]     = decider.Children[i + 1];
                    decider.Children[i + 1] = temp;
                }
            }
            GUILayout.Label("   ");
            if (GUILayout.Button("Delete", GUILayout.ExpandWidth(false)))
            {
                Undo.RecordObject(decider, "Delete child");
                decider.Children.RemoveAt(i);
            }
            EditorGUILayout.EndHorizontal();
            ShowTreeNode(child);
        }
        EditorGUI.indentLevel -= 1;
        if (selectedTypeIndex >= 0)
        {
            Undo.RecordObject(decider, "add child");
            var added = (BehaviorTreeNode)CreateInstance(btTypes[selectedTypeIndex]);
            decider.Children.Add(added);
        }
    }
 // Initialize BehaviorTree field
 internal void Reset()
 {
     BehaviorTree = (GroupDecider)ScriptableObject.CreateInstance(typeof(GroupDecider));
 }