As above, if you need specific data passed, you make your own interface.
- the interface:
- the weapon blueprint:
- the (shield or any other) actor that implements said interface:
Think of an Interface as of a collection of functions that do nothing on their own. Granting an actor access to that interface allows it to implement functionality individually.
Whenever the raycast (linetrace) hits, we call the Generic Hit. A Tree actor will implement the function differently than a Shield actor.
And if you Generic Hit an actor that does not implement that interface… nothing happens, which is great.
Some good reading here if you’re into studying docs: