- Home /
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!!
Answer by phocker · Sep 09, 2013 at 08:59 PM
Why not try tweening the X/Y scale to slightly increase the size, and then back to normal?
I'd rather have the enemy recoil and not change size. Plus, I'm working on this project with a limited amount of time, not sure I want to spend time learning a new engine. Thanks anyways!
Your answer
![](https://koobas.hobune.stream/wayback/20220613113851im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Enemy locators 1 Answer
Need help Adding Physics based recoil to my gun 0 Answers
How to save/load game on mobile(android)? 1 Answer
How To Make NPC Follow Player When In Range? 1 Answer
how to save a android game 1 Answer