public AnimationClip Evaluate(float dt)
        {
            if (anyNode == null)
            {
                return(null);
            }
            if (startNode == null)
            {
                return(null);
            }
            runtime = dt;
            AnimationClip qualifiedState = anyNode.Evaluate(null);

            if (qualifiedState != null)
            {
                isAnyClip = true;
                if (lastClip != qualifiedState)
                {
                    internalCounter = 0;
                }
                lastClip = qualifiedState;
                UpdateConnections(qualifiedState);
                return(qualifiedState);
            }
            else if (isAnyClip)
            {
                if (
                    internalCounter < lastClip.length
                    )
                {
                    UpdateConnections(lastClip);
                    return(lastClip);
                }
                else
                {
                    isAnyClip = false;
                }
            }
            qualifiedState = startNode.Evaluate(null);
            if (qualifiedState != null)
            {
                if (lastClip != qualifiedState)
                {
                    internalCounter = 0;
                }
                lastClip = qualifiedState;
                UpdateConnections(qualifiedState);
                return(qualifiedState);
            }
            return(null);
        }