It was kinda intended to signify the difference between "playing the last frame" and "finished playing the last frame". I can see how that could be a problem though, you can change the behaviour in
public int CurrentFrame {
get {
switch (currentClip.wrapMode) {
case tk2dSpriteAnimationClip.WrapMode.Once:
return Mathf.Min((int)clipTime, currentClip.frames.Length - 1); // change this
What does everyone else think? I can change this but dont want to break existing code.