Тут больше не код, если анимация спрайтовая то нужно правильно выставлять аниматор контроллеры. Плавного перехода трудно будет добиться. Нужна отдельная анимация для диагонального передвижения, тут участвуют обе координаты и контроллер просто не понимает какую анимацию не проигрывать, поэтому работают обе.