One of the parameters is normalizedTime which tells the animator where to start the animation. In your example, you would pass in 18/30 to start at frame 18. I don’t know how this will behave if you have set the Animator speed to 0.
thank you - that has definitely set me on the right track
anim.Play("Base Layer.editPhotos", 8/14, 0.25f);
However if I am going to use this method then i need to be able to dynamically work out the current frame, ideally the total number of frames and then decrement
You may be able to use GetCurrentAnimatorStateInfo to get some of the information you are looking for, but this isn’t going to tell you how many keyframes are defined for the current animation.
Are you sure that using an animator is the best option for your use case? It sounds like you need a lot of control over how and when the current sprite changes.