Exemplo n.º 1
0
        public override void OnInspectorGUI()
        {
            HintedExecutionBehaviourTree tree = (HintedExecutionBehaviourTree)target;

            if (tree.tree == null)
            {
                var id = Guid.NewGuid().ToString();
                if (GUILayout.Button("Initial Sequence Node"))
                {
                    tree.tree = new SequenceNode(new List <BaseNode> {
                    }, id);
                    selectorIndexes.Add(id, 1);
                }

                if (GUILayout.Button("Initial Selector Node"))
                {
                    tree.tree = new SelectorNode(new List <BaseNode> {
                    }, id);
                    selectorIndexes.Add(id, 2);
                }
            }
            else
            {
                DrawNode(tree.tree, new List <BaseNode>());
            }
        }
Exemplo n.º 2
0
        private void ChangeFieldType(BaseNode node, BaseNode parent, int typeInd)
        {
            BaseNode newNode;

            switch (typeInd)
            {
            case 1:
                newNode = new SequenceNode(node.GetChildren(), node.GetId());
                break;

            case 2:
                newNode = new SelectorNode(node.GetChildren(), node.GetId());
                break;

            case 3:
                newNode = new TimeMonitorNode(node.GetChildren(), node.GetId());
                break;

            default:
                newNode = new ActionNode();
                newNode.SetId(node.GetId());
                break;
            }

            if (parent == null)
            {
                HintedExecutionBehaviourTree tree = (HintedExecutionBehaviourTree)target;
                tree.tree = newNode;
            }
            else
            {
                var changeIndex = parent.GetChildren().FindIndex(x => x == node);
                parent.GetChildren()[changeIndex] = newNode;
            }
        }
Exemplo n.º 3
0
 void OnEnable()
 {
     t         = (HintedExecutionBehaviourTree)target;
     GetTarget = new SerializedObject(t);
 }