diff --git a/Assets/FluidBehaviorTree/Runtime/Tasks/Conditions/ConditionGeneric.cs b/Assets/FluidBehaviorTree/Runtime/Tasks/Conditions/ConditionGeneric.cs index 9108256e..3349c8ff 100644 --- a/Assets/FluidBehaviorTree/Runtime/Tasks/Conditions/ConditionGeneric.cs +++ b/Assets/FluidBehaviorTree/Runtime/Tasks/Conditions/ConditionGeneric.cs @@ -20,11 +20,11 @@ protected override void OnStart () { } protected override void OnExit () { - initLogic?.Invoke(); + exitLogic?.Invoke(); } protected override void OnInit () { - exitLogic?.Invoke(); + initLogic?.Invoke(); } } } \ No newline at end of file diff --git a/Assets/FluidBehaviorTree/Tests/Editor/Tasks/Conditions/ConditionGenericTest.cs b/Assets/FluidBehaviorTree/Tests/Editor/Tasks/Conditions/ConditionGenericTest.cs index e240aac6..e93da305 100644 --- a/Assets/FluidBehaviorTree/Tests/Editor/Tasks/Conditions/ConditionGenericTest.cs +++ b/Assets/FluidBehaviorTree/Tests/Editor/Tasks/Conditions/ConditionGenericTest.cs @@ -44,6 +44,20 @@ public void It_should_execute_a_init_hook () { Assert.AreEqual(1, test); } + + [Test] + public void It_should_execute_init_hook_before_update () { + var test = 0; + var task = new ConditionGeneric { + initLogic = () => { test++; }, + updateLogic = () => { return test == 1; } + }; + + task.Update(); + + Assert.AreEqual(task.LastStatus, TaskStatus.Success); + } + [Test] public void It_should_execute_a_exit_hook () { var test = 0;