I have a character which needs to choose one of many possible attack animations. Which one he chooses depends on the path the animation clip takes, which I read using animationClip.SampleAnimation(...). He chooses the animation whose path brings the attack animation most close to the hit location on the target. So if the enemy is on the ground he will do a low swing, if the enemy is far he does a lunge, etc. So how do I pick which clip to play from script? I've been looking for the last two hours and as far as I can tell you cannot. Problems: 1. Animator.Play() takes the name of the Animation state, not the clip. 2. I can't do that anyway because there is no way to enumerate the list of animation states during runtime 3. Even through I can read the names of all the clips, I don't know which clips are attack or not. This is setup in the Animation controller as a tag on the animator state, which as I just said I can't enumerate. 4. Even if I could do all of the above, I have no way to read which animator states are valid transitions from the current state.