예제 #1
0
    // Use this for initialization
    void Start()
    {
        BehaviourTree bt = gameObject.AddComponent <BehaviourTree> ();

        LeafTetherNode        ltn   = new LeafTetherNode("Capsule", 8.5f, 1f);
        LeafStrafeNode        lsn   = new LeafStrafeNode("Capsule", 1.0f, 1f);
        LeafWaitForPlayerNode lwfpn = new LeafWaitForPlayerNode("Capsule", 10f, 0f);
        LeafFireAtPlayerNode  lfapn = new LeafFireAtPlayerNode("Capsule", 2f);


        SequenceNode sn1 = new SequenceNode(ltn, lsn);



        ParallelSequenceNode psn1 = new ParallelSequenceNode(sn1, lfapn);


        LoSInterruptDecorator lid = new LoSInterruptDecorator(psn1, "Capsule", 10f, 1f);
        SequenceNode          sn2 = new SequenceNode(lwfpn, lid);


        RootNode r = new RootNode(sn2);

        r.tree = bt;
        bt.setRoot(r);
    }
예제 #2
0
    /// <summary>
    /// 并行顺序节点
    /// </summary>
    private void ParallelSequenceNode()
    {
        ParallelSequenceNode parallelSequenceNode = new ParallelSequenceNode();

        parallelSequenceNode.AddChild(move);
        parallelSequenceNode.AddChild(idel);
        Debug.Log("并行选择节点执行结果为:" + parallelSequenceNode.DoAction());
    }