public void ProcessNodeTest()
    {
        var basis = new FlowAIBasis();

        var proc1 = new ProcessNode();
        var proc2 = new ProcessNode();
        var proc3 = new ProcessNode();
        var terminal = new ProcessNode();
        var branch = new RandomBranchNode();

        proc1.Initialize(0.3f, branch, () => Debug.Log("completed process1"));

        branch.nextNode1 = proc2;
        branch.nextNode2 = proc3;
        proc2.Initialize(0.1f, terminal, () => Debug.Log("completed process2"));
        proc3.Initialize(0.2f, terminal, () => Debug.Log("completerd process3"));
        terminal.Initialize(0.0f, null);

        basis.AddNode(proc1, proc2, proc3, terminal, branch);

        basis.entryPointNode.nextNode = proc1;

        basis.Entry();

        for(int f1=0;f1<50;f1++)
        {
            Debug.LogFormat("---{0}sec---", (f1 + 1) * 0.1f);
            basis.Update(0.1f);
        }
    }
    public void BasisTest()
    {
        Debug.Log("---initial---");

        var basis = new FlowAIBasis();

        var dummy1 = new DummyNode();
        var dummy2 = new DummyNode();
        var dummy3 = new DummyNode();
        var branch = new RandomBranchNode();

        dummy1.duration = 0.5f;
        dummy1.nextNode = branch;

        branch.duration = 0.2f;
        branch.nextNode1 = dummy2;
        branch.nextNode2 = dummy3;

        dummy2.duration = 0.5f;
        dummy2.nextNode = dummy1;

        dummy3.duration = 0.5f;
        dummy3.nextNode = dummy1;

        basis.AddNode(dummy1);
        basis.AddNode(branch);
        basis.AddNode(dummy2);
        basis.AddNode(dummy3);

        basis.entryPointNode.nextNode = dummy1;

        basis.Entry();
        for(int f1=0;f1<30;f1++)
        {
            Debug.Log("\n");
            Debug.LogFormat("---{0}[sec]---", (f1+1) * 0.1f);
            basis.Update(0.1f);
        }
    }