This is a common issue, it is because the walk or idle animations override the attack. So if you are moving or not, it will always try to play walk/idle even if you shoot. The way to fix is to add more conditions such as 'attack animation is not playing' under walk anims. Problem is you have many different anims so a variable might work here. When you want to attack set an instance variable for attack to 1 and then back to 0 when the attack is over, then with your moving/walking animations add condition variable for attack equal to 0.