Ты очень сильно замудрил скрипт. Во первых условия на атаку лучше поменять на триггер. В анимации атаки должно быть что игрок поднял меч, ударил, вернул в обратное положение. Также надо убрать галочку Has exit time. Это для того что бы при условиях анимация повторилась один раз. А по скрипту просто пишешь
Void update()
{
If (input.GetKeyDown(KeyCode.E))
{
_animator.SetTrigger(“attack”)
}
}