How do I make an enemy recoil when hit?

I’m making a 2D platformer for Android and want to give the user some visual feedback that they’ve hit an enemy successfully. What I have so far in semi-psuedo code (attached to the enemy) is this:

  void LowerEnemyHealth()
    {
    currentHealth -= 1;

    if(player is left of enemy)
    rigidbody.AddForce (new Vector3(50f, 50f, 0f));
    
    if(player is right of the enemy)
    rigidbody.AddForce (new Vector3(-50f, 50f, 0f));
    }

LowerEnemyHealth() is called when the player lands a successful hit. I want to make the enemy then recoil backwards and up a bit. The if statements are being called when they’re supposed to, but no force seems to be applied to the enemy since he doesn’t flinch. Yes I do have a rigidbody attached and the enemy’s mass is 3. Do I just need to apply the force over a period of time?

I would also like to make the enemy turn red for a moment when he is hit. I don’t want the entire texture to turn solid red, but rather cover him in a red colored filter. Is there an easy way to do this using the Free version of Unity?

Thanks for any help!!

Why not try tweening the X/Y scale to slightly increase the size, and then back to normal?

http://www.holoville.com/hotween/