상속: MonoBehaviour
        public void MultipleTriggerTest()
        {
            var trigger1 = new EventTrigger(AlwaysTrue)
            {
                IsRepeatingTrigger = true
            };
            var trigger2 = new EventTrigger(AlwaysTrue)
            {
                IsRepeatingTrigger = true
            };
            var trigger3 = new EventTrigger(AlwaysTrue)
            {
                IsRepeatingTrigger = true
            };
            var sequenceTrigger = new SequenceTrigger(trigger1, trigger2, trigger3);
            int trigger1Count   = 0;
            int trigger2Count   = 0;
            int trigger3Count   = 0;

            trigger1.ConditionsMet += () => ++ trigger1Count;
            trigger2.ConditionsMet += () => ++ trigger2Count;
            trigger3.ConditionsMet += () => ++ trigger3Count;
            InputController.AddTrigger(sequenceTrigger);
            Assert.AreEqual(0, trigger1Count);
            Assert.AreEqual(0, trigger2Count);
            Assert.AreEqual(0, trigger3Count);

            InputController.Update();
            Assert.AreEqual(1, trigger1Count);
            Assert.AreEqual(0, trigger2Count);
            Assert.AreEqual(0, trigger3Count);

            InputController.Update();
            Assert.AreEqual(1, trigger1Count);
            Assert.AreEqual(1, trigger2Count);
            Assert.AreEqual(0, trigger3Count);

            InputController.Update();
            Assert.AreEqual(1, trigger1Count);
            Assert.AreEqual(1, trigger2Count);
            Assert.AreEqual(1, trigger3Count);

            InputController.Update();
            Assert.AreEqual(2, trigger1Count);
            Assert.AreEqual(1, trigger2Count);
            Assert.AreEqual(1, trigger3Count);
        }
예제 #2
0
    void OnTriggerSequence(SequenceTrigger trigger)
    {
        if (target != null)
        {
            trigger.sequencer.Jump(target);
        }
        else if (targetName != null)
        {
            trigger.sequencer.Jump(targetName);
        }

        jumpMaxCount--;

        if (jumpMaxCount == 0)
        {
            gameObject.SetActive(false);
        }
    }