public override State Update()
    {
        var state = _current.Recalculate() ? _current.Start() : _current.Update();

        if (state == State.FAILURE)
        {
            return(CalculateState(State.FAILURE));
        }
        else if (state == State.SUCCESS)
        {
            return(ToNextNode());
        }
        else
        {
            return(State.IN_PROGRESS);
        }
    }
Ejemplo n.º 2
0
    IEnumerator Routine()
    {
        while (true)
        {
            if (currentNode == null)
            {
                DefineNode();
            }

            if (currentNode != null)
            {
                var state = currentNode.Recalculate() ? currentNode.Start() : currentNode.Update();

                if (state != BehaviourNode <X> .State.IN_PROGRESS)
                {
                    currentNode = null;
                }
            }

            yield return(null);
        }
    }
Ejemplo n.º 3
0
 public override State Update()
 {
     return(_currentNode.Recalculate() ? _currentNode.Start() : _currentNode.Update());
 }