I have a PlayerControl in which I have two control schemes, one named Gamepad and one named KBM, inside each scheme i have mapped controls and haveticked the box for each mapping to associate it with the scheme.
A Player Input component attached to my character that looks like this (note auto-switch is selected)

The movement for my character seems to work as intended regardless of which scheme is being used, meaning i can easily switch between keyboard and gamepad for x/y movement of my character (i’m working in 2d here)
The problem comes when i need to be able to adjust my aiming code to acomodate for the difference between mouse aim (using the main camera WorldToScreenPoint) and Gamepad left stick (using simple x/y vectors
I’ve tried the following, none of which actually display a change in control scheme:
The following method:
public void OnDeviceChange(PlayerInput controller)
{
Debug.Log("Switching Device...");
isGamepad = controller.currentControlScheme.Equals("GamePad") ? true : false;
}
and in the UI, under my Player Input → events → controls changed event looks like this:

Regardless of if i’m using KBM or Gamepad i never see “Switching Device…” in the console?
I then attempted a manual brute force approch like this:
private void Update()
{
Debug.Log(string.Format("Current Control Scheme: {0}", playerInput.currentControlScheme));
{
Which always displays whichever scheme i set as default and doesn’t change if i switch controllers.
Am i missing something? I feel like theres a tick box somewhere or a UI mapping some place i’ve missed?
Thanks


