How do you run a line of code after an animation is finished playing,I am trying to fire an arrow at the end of the bow attacking animation

when ever i try to debug the getState info it come up as false

Either use animation events or if you know the exact moment it starts, create a coroutine that waits for the exact duration of that animation.

I usually prefer the second option, but sometimes it’s not possible to do easily

Why do you have “&&” on the outside of your second if statement?
From what I gather when you release the N key, you want your bow animation to end, and to instantiate an arrow at the point? Why would you need to do it at the end of an animation? Surely you would want the arrow to be fired immediately when you release N?

To answer the question, I think it’s possible to get a reference to the duration of an animation, and then in a Coroutine use WaitForSeconds, using the reference for the amount of time to wait.