Making enemies being hit feel more impactful

I have a way of hitting and defeating enemies in game, but it doesn’t feel like I actually hit them since all that’s happening is my attack goes through their mesh and reduces their health until they die, without any reaction aside from a tiny animation of them bending a bit backwards when hit. I want to add three things to make it feel better, but don’t know how to go about adding them.

  1. adding a flashing effect in white/red when hit. the enemies are made up of several materials, will that make things too complex?
  2. adding knockback. will adding knockback make it so that they might be pushed out of their NavMesh and ruin the flow of the game?
  3. add a freeze-frame when hitting an enemy, to make it feel like I hit something and it has resistance to the swing of the weapon through its body. pretty sure it only needs to apply on the animations and not the entire game, so it seems kind of complex…
    How would you go about adding either or all of these things?


For the freeze-frame idea:

There is a ‘Set Global Time Dilation’ node, so you have that trigger for an instant.

(Protip: A ‘Delay’ node with the value 0 will delay for 1 frame)

Also I’d add ‘screen shake’ to that list.

For the flashing, look into setting a ‘Material Parameter Collection’ (and multiple materials can reference that)