Beispiel #1
0
    //Run each behaviour tree tick
    public CompletionStates Tick(GuardController guard)
    {
        //If the guard isn't still running, run its starting function
        if (status != CompletionStates.RUNNING)
        {
            OnInitialise(guard);
        }
        //Update the guard
        status = UpdateGuard(guard);

        //If the guard is no longer running, call its exit function
        if (status != CompletionStates.RUNNING)
        {
            OnExit(status);
        }
        return(status);
    }
Beispiel #2
0
    public override CompletionStates UpdateGuard(GuardController guard)
    {
        //Run the child first
        CompletionStates returnState = child.Tick(guard);

        //Check if the child was a success, and if so flip it to a failure
        if (returnState == CompletionStates.SUCCESS)
        {
            return(CompletionStates.FAILURE);
        }
        //Check if the child was a failure, and if so flip it to a success
        else if (returnState == CompletionStates.FAILURE)
        {
            return(CompletionStates.SUCCESS);
        }
        //Don't mess with a running or error result
        else
        {
            return(returnState);
        }
    }
Beispiel #3
0
 //Last thing the child runs when it is destroyed, will be overriden for each child
 public virtual void OnExit(CompletionStates state)
 {
 }