Time Limit Decorator Guide
This tutorial continues the small example created in the BT tutorials, where the player moves his avatar in the "environment" (a mere plane) using mouse clicks, and the enemy wanders around and pursues the player when he is near enough. We encourage you to follow that tutorial in the first place but, if you are impatient, its final version (and the starting point for this guide) is available in the Behavior Bricks package, under Samples\QuickStartGuide\Done
folder. Obviously, you are supposed to have been loaded Behavior Bricks into a new Unity project. Refer to the download instructions in other case.
In this tutorial, we will show how the time limit decorator works in a BT
If you want to experiment with the final version of the demo prior to following the tutorial, you can find it in the Samples\ProgrammersQuickStartGuide\Done\DoneScene\TimeLimitTestScene.scene
folder in the Behavior Bricks package.
Explanation of the example
The decorator is used to indicate that a given action has to be completed in a established amount of time. If the entity can't complete the action in the given time, the node fails and the action is aborted.
The BT built for the example does the following when given to an enemy. The BT starts with a repeat node which is followed by a selector, this selector has 2 branches, the first one sets the enemy to chase the player giving it a time to complete the action with the time limit decorator(we have set the time to 5 seconds in this example) if the enemy manages to catch the player withing that time frame, it stays near the player and if the players separates from him the repeat node at the start of the tree will make the enemy continue to chase the player. Otherwise if the enemy doesn't manage to catch the player, the time limit decorator aborts the execution of the child node and making the selector go to the other branch wich self destroys the enemy.
The Enemy on the scene have already attached the parameters, if they were missing for some chance you have to set the "player" to the "target" parameter (the target to chase) and the "enemy" to the "game object" parameter (the game object to be destroyed).
To set the Time Limit, go to the node, and in the node tab there is a parameter called "TimeLimit" which we have set for default to 5. Change it for the number (in secods) that you desire.