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); }