Axis Input not read if triggered before Level Start

Hi!

When I hold e.g. the left thumbstick of my 360 controller to the left and then load a new level, the input is no longer recognized (like “half button press”). “Get Gamepad Left Thumbstick X-Axis” (or any axis mappings that use that thumbstick) will return 0 until I release the left thumbstick and then move it again.

The problem does not occur if I hold down e.g. one of the cursor keys or the D-pad on the controller before starting a new level. On level start, that input is immediately recognized.

Any way to check if the thumbstick is still being pressed since the previous level? I’m using 4.7.

Thanks!

Hi anteevy,

Are you using the Player Controller to drive movement or are you moving via the Player Character?

Hey! I’m rolling a ball, so I’m using the Player Controller to add force to it. For testing this issue, I’m calling “Get Gamepad Left Thumbstick X-Axis” in the PC blueprint’s Tick() event and only receive zeroes, until I release the analogue stick and move it again.

Hi anteevy,

The reason that the keyboard doesn’t have issues is because key presses repeat as you hold them. So when the level loads and the Player Controller is created, the key is literally on repeat. (This is the same with the d-pad.)

A analogs of a gamepad is different. When a direction is pressed, the execute is only registered once. Then it increases or decreases the axis value as the analog is moved around. So when the level is loaded and the Player Controller is created, holding forward doesn’t register as a input because the execute already happened on the previous level.

To have the analog register on level load, I believe you would have to dig into the code and implement it.

Cheers,

TJ

Ah, that explains it - thanks!