How can you subscribe to Unity input events, instead of polling for them

How can you subscribe to Unity input events, instead of polling for them

Been trying for days to figure out if there is a way to subscribe to keyboard/mouse events in unity. Instead of having to poll for them every frame and make my own events. 
Right now I poll through the inputs and fire off my own events if a button is pressed. I'd prefer to subscribe directly to Unities input events, but have yet to figure out how.
I have a Unity Answers post that may have some relevant info to my question as well:


Answer 1:

There’s no built-in way to do that. If you prefer an event based solution you can wrap all input polling inside a component and expose the relative and subscribe for them.

Some like:

public EventHandler : MonoBehaviour
  public event Action<Vector2> mouseCliked;

  void Update()
    if (Input.GetMouseButtonDown(0))

Answer 2:

As said by Heisenbug is no built-in way to do this.

My recommendation is to explore the UnityEvent namespace new to Unity 4.6 and above. This will allow you to expose functionality to designers that will allow them to rig up interesting inputs and receivers.

You can go the extra mile and implement a custom editor with a serialized dictionary and button to add new listeners.

Edit: If you need to describe you could go with the dreaded singleton and process subscription requests to provide KeyCodes and press types.