Quick answer: Set Control Path to <Keyboard>/space (or similar device path). Action with that binding fires when button pressed.

Touch UI button. Action doesn’t fire. You wired Control Path to action name; expects device control path.

The Fix

UI Button GameObject:
  + OnScreenButton
    Control Path:    <Keyboard>/space

InputActionAsset:
  Jump action with binding:    <Keyboard>/space

C#:
  jumpAction.performed += ctx => DoJump();

OnScreenButton injects synthetic input. Action listens to the same control. Touch -> synthetic press -> action fires.

Verifying

Tap UI button. Jump fires. With wrong path: no fire.

“Device path. Synthetic press. Action fires.”

Related Issues

For Virtual Mouse, see Virtual Mouse. For control scheme, see scheme.

Device path. Action fires.