I'm writing an Input Manager of my own to replace Unity's that will allow my players to customize their controls in-game as well as allow me more fine grained control of how they customize things. I've got it working pretty well, but ran in to some problems because I can't find any way to access input functions at a lower level than through the basic stuff available in Input. 1.) Joysticks are not ever detected when plugged in while game is running. (Tested in editor and build.) Is there any way to re-poll for joysticks while the player is running in case they a) forget to plug a controller in before or b) remove a controller mid game or c) add a 2nd controller in mid game to join in. 2.) There seems to be no way to get an axis directly without first setting it up in Unity's Input Manager. I can access all keyboard, joystick, and mouse buttons through Input.GetKey, but there's no equivalent for axes as Input.GetAxis just takes a string which matches whatever axis you set up in Input Manager. 3.) There's very little available for managing joysticks. The only way I can even detect how many controllers are connected is with Input.GetJoystickNames. I'm wondering if there are any undocumented features for input management that I might get access to to help me get the most out of input.