Exemplo n.º 1
0
    public BehaviourTreeGraphNode CreateBehaviourTreeNode(string name, Vector2 position)
    {
        var node = new BehaviourTreeGraphNode()
        {
            title  = name,
            GUID   = Guid.NewGuid().ToString(),
            action = new UnityEngine.Events.UnityEvent()
        };

        var inputPort = GetPort(node, Direction.Input);

        inputPort.name = "上一个";
        node.inputContainer.Add(inputPort);

        node.SetPosition(new Rect(position, new Vector2(400, 200)));

        var button = new Button(delegate { AddChoidPort(node); });

        button.text = "新出口";
        node.titleContainer.Add(button);

        node.RefreshExpandedState();
        node.RefreshPorts();
        return(node);
    }
Exemplo n.º 2
0
    private void AddChoidPort(BehaviourTreeGraphNode node)
    {
        var gPort = GetPort(node, Direction.Output);

        var outputPortCount = node.outputContainer.Query().ToList().Count;

        gPort.portName = $"出口{outputPortCount}";

        node.outputContainer.Add(gPort);
        node.RefreshPorts();
        node.RefreshExpandedState();
    }
Exemplo n.º 3
0
    private BehaviourTreeGraphNode CreateEntry()
    {
        var node = new BehaviourTreeGraphNode()
        {
            title      = "开始",
            GUID       = Guid.NewGuid().ToString(),
            action     = new UnityEngine.Events.UnityEvent(),
            entryPoint = true
        };

        var outputPort = GetPort(node, Direction.Output);

        outputPort.portName = "下个";
        node.outputContainer.Add(outputPort);

        node.RefreshExpandedState();
        node.RefreshPorts();

        node.SetPosition(new Rect(100, 200, 400, 200));

        return(node);
    }
Exemplo n.º 4
0
 private Port GetPort(BehaviourTreeGraphNode node, Direction direction, Port.Capacity capacity = Port.Capacity.Single)
 {
     return(node.InstantiatePort(Orientation.Horizontal, direction, capacity, typeof(float)));
 }