Troubleshooting and FAQ

Answers to common questions about migrating with Input Porter, and what to do when something does not go as expected.

Documentation pages

Input Porter is coming soon to the Unity Asset Store. This guide describes the release being prepared.

“Every input throws after I installed the package”

Unity asked whether to enable the Input System’s backends, and Yes was chosen. That turned legacy input off, so every legacy call throws until it is migrated. Nothing is lost: either migrate straight away, or first set Edit > Project Settings > Player > Other Settings > Active Input Handling to Both and restart, so the game keeps working while you migrate. Step 1 of the migration window (Prepare) also offers Switch to Both… in this situation.

“Apply was refused”

  • “An earlier migration step did not finish.” The editor stopped during an earlier Apply. The window shows Recover safely first; see Undo and recovery.
  • “… changed after the preview”, or read-only or locked: a file changed or cannot be written, for example a version control checkout lock. Preview again, or release the lock.
  • The Input System is off (Active Input Handling is Input Manager (Old)): step 1 of the migration window (Prepare) offers Switch to Both and restart…; see the Quick start.
  • A scene is open with unsaved changes: save or close it, then preview again.

“The rewrite left a file alone”

The preview says why for each file. Usually:

  • the file is not clean UTF-8 or UTF-16 text;
  • rewriting it would break the compile;
  • the use is in an #if branch that is off in the editor;
  • it reads a member the bridge does not provide, such as the gyroscope.

Each one is on the To do by hand list, linked to its line.

“The checklist will not let me switch”

Each blocker says what to do; see The switch-over checklist. You can always stay on Both: legacy input and the bridge work side by side, and your game runs exactly as it does today.

“My game feels one frame behind in one place”

That code reads input in FixedUpdate or OnGUI. See Input read in FixedUpdate or OnGUI.

Does Input Porter change my game’s behavior?

No, apart from the measured cases on Known differences. The bridge reproduces legacy input’s rules, including axis smoothing, snap, dead zones, and repeated reads in one frame. It is checked against real legacy input.

What if my project has DLLs that use legacy input?

The scan finds compiled DLLs that call UnityEngine.Input and lists each one with the calls it makes. Input Porter never edits a DLL: compiled code cannot be rewritten safely. Your own code still migrates, and the game runs as before with Active Input Handling on Both. To switch to Input System only, ask the DLL’s vendor for a version that uses the Input System, or replace it. The checklist keeps the switch blocked until no DLL calls legacy input. If you have the DLL’s source, add the source to the project instead, and Input Porter migrates it like the rest of your code.

Does it work with Rewired or InControl?

It leaves them alone and names them on the checklist. Check that plugin’s input source setting before you choose Input System only.

Can I use it in a build pipeline?

Yes. The scan runs in batch mode, and with a committed baseline it fails the build when someone adds new legacy input code. See Continuous integration.

Is there something to try it on?

Yes. Window > Package Manager > Input Porter > Samples has the Old-Style Game, a tiny game written with legacy input. After importing it, choose Tools > StackBlender > Input Porter > Samples > Create Old-Style Game Scene, press Play, then migrate it.

Where do I report a problem?

Email support@stackblender.com with your Unity version and, if you can, the exported To do by hand list or the scan report.