Thanks for your input (pun not originally intended).
Well, I suppose I’m going to use this thread as a platform for me to talk about my trials during this process, at least until I formulate a solution that’s suitable for a blog entry.
So, I’m using NGUI’s UICamera event handlers to capture mouse movement, buttons, and keyboard input. It’s a turn-based board game, so I am opting to use the system hardware cursor rather than relying on a software cursor. I chose Rewired because I wanted to support gamepads and keyboard-only play. When I started to integrate Rewired, I noticed that there are only bindings for delta movement on GetAxis(), which is understandable, since this is what controllers can generically generate. It’s the damn mouse that’s the oddball, and I have to manage my absolute screen position separately from all other input. I have the discussion in the Rewired thread [here]( Rewired - Advanced Input for Unity page-86#post-3559307).
So, having accepted that, I am turning my attention to all other controllers that are NOT the mouse. The way I am approaching it for this first pass is, I’m going to implement a RewiredGameInputManager for capturing Rewired input Action events, and then use my event system to fire off events to all my other systems. For example, I want the Escape key, or a gamepad’s ‘Start’ button to invoke the in-game Pause Menu. The RewiredGameInputManager would poll for that Rewired “PauseMenu” action, send off a PauseMenuMsg to the event system, and the UI would receive that event to invoke the actual popup menu, and the simulation would receive that same event to pause the simulation.
Using my event system is what would take place of using UICamera’s event handlers. I essentially will have to implement that layer myself, to also handle drag events and other events that I relied on UICamera to provide me. On top of this, I am not yet sure how to hook this up to NGUI. The only lead I have is the various sources that are similar to the one that @MostHated provided above. It’s a reasonable solution, to basically override NGUI’s input functions to capture Rewired input instead of Unity GUI input.
Another interesting lead I had was that Rewired provides an example of overriding Unity Input with Rewired input, with the UnityInputOverride script. Since Unity GUI is somewhat based off of the NGUI implementation, I was hoping I can follow this model to completely re-vamp UICamera for Rewired. I’m going to try this as a last resort though, as I don’t think I will need to go this route. However, I’m leaving the option open if all else fails.