IEnumerable<AnimatorState> Traverse(AnimatorController controller) {
foreach (var controllerLayer in controller.layers)
foreach (var st in Inner(controllerLayer.stateMachine))
yield return st;
IEnumerable<AnimatorState> Inner(AnimatorStateMachine f) {
foreach (var state in f.states)
yield return state.state;
foreach (var child in f.stateMachines)
foreach (var st in Inner(child.stateMachine))
yield return st;
}
}