Грубо говоря надо сравнить вектор движения и вектор направления.
Вот так:
float dotZ = Vector3.Dot(transform.forward, moveDir);
float dotX = Vector3.Dot(transform.right, moveDir);
if( Mathf.Abs(dotZ) > Mathf.Abs(dotX) ) {
if(dotZ > 0) PlayRun(shoot);
else PlayRunBackward(shoot);
} else {
if(dotX > 0) PlayRunRight(shoot);
else PlayRunLeft(shoot);
}