In blueprints we have OnClick/OnTouchBegin events witch is triggered when touch occur on target actor.
How we can accomplish this in C++?
I did a few projects where it was done this way:
- all “InteractiveObjects” implement an interface with OnMouseOver(), OnMouseOff(), OnMouseClick() etc. events
- every Tick() cast a ray for actors/components and cast whatever got hit to InteractiveObject interface
- if the mouse is down and it is hitting an InteractiveObject then fire the mouse event on that actor or component
But i think that performing raycast each frame can result to perfomance hit.
A sphere component with overlap events?