Exemple #1
0
        public void Timeout()
        {
            for (int i = 0; i < 10; i++)
            {
                var rndTime = UnityEngine.Random.Range(0.01f, 10f);

                MockNode child = new MockNode();
                var      sut   = new TimeLimit(rndTime).Decorate(child);
                var      bt    = CreateBehaviorTree(sut);
                bt.Start();

                Assert.AreEqual(sut.CurrentStatus, Node.NodeStatus.Active, "TimeLimit AVTIVE");
                Assert.AreEqual(child.CurrentStatus, Node.NodeStatus.Active, "Start, child should be ACTIVED");

                Timer.Tick(rndTime);

                Assert.IsTrue(bt.DidFinish);
                Assert.IsFalse(bt.WasSuccess);
                //bt.Cancel();
            }
        }
Exemple #2
0
        public void Child_Return_First()
        {
            for (int i = 0; i < 10; i++)
            {
                var rndTime = UnityEngine.Random.Range(.01f, 10f);

                MockNode child = new MockNode();
                var      sut   = new TimeLimit(rndTime).Decorate(child);
                var      bt    = CreateBehaviorTree(sut);
                bt.Start();

                Assert.AreEqual(sut.CurrentStatus, Node.NodeStatus.Active, "TimeLimit AVTIVE");
                Assert.AreEqual(child.CurrentStatus, Node.NodeStatus.Active, "Start, child should be ACTIVED");

                Timer.Tick(rndTime * UnityEngine.Random.Range(0, .95f));
                child.Finish(true);

                Assert.AreEqual(child.CurrentStatus, Node.NodeStatus.Inactive, "Child finished, child should be INACTIVED");
                Assert.AreEqual(sut.debugLastResult, child.debugLastResult, "Return result should equal to child's result");

                //bt.Cancel();
            }
        }