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!!
↧