What changes, and what does not
Every file Input Porter writes during a migration, everything it leaves alone, and why.
Documentation pages
Input Porter is coming soon to the Unity Asset Store. This guide describes the release being prepared.
Input Porter only writes what the preview showed you. Every change goes through its journal, so Undo can put it back byte for byte.
What it writes
| What | Where | Why |
|---|---|---|
| Converted axis settings | Assets/InputPorter/Resources/InputPorterLegacyAxes.asset |
Your Input Manager axes (Horizontal, Fire1, your own) as the bridge reads them, in game builds too |
| Input Actions asset (optional) | Assets/InputPorter/InputPorterLegacyActions.inputactions |
The same axes as Input System actions, for moving to actions later. Written only when ticked |
| Scripts | Each script that reads legacy input | Input.GetAxis(...) becomes LegacyInput.GetAxis(...), and so on, with using StackBlender.InputPorter; added. If your project has its own class called LegacyInput, the full name is used instead |
| Assembly definitions | Each .asmdef whose code now uses the bridge |
A reference to StackBlender.InputPorter is added |
| Scenes and prefabs | Each one with its own StandaloneInputModule or TouchInputModule |
Replaced by InputSystemUIInputModule on the same GameObject. Repeat delay, repeat rate, and enabled carry over, and the module uses the Input System’s default UI actions |
| Active Input Handling | Project Settings > Player | Both (step 1, Prepare), then Input System only (step 5, Finish), each after a confirmed restart |
| The journal | .input-porter-journal/ in the project folder |
The original bytes of every file changed, so Undo works even after you close the editor |
A prefab’s module is swapped once, in that prefab, and every instance and variant follows it. Scenes and prefabs saved in binary form, or saved by an older Unity version, are opened and swapped through Unity itself. Undo still restores their exact bytes.
What it never changes
- Packages (
Packages/and your package cache). A legacy call inside a package is listed on the checklist: update that package, or keep Active Input Handling on Both. - Compiled DLLs. They are scanned and listed, never edited.
- Third-party folders (
Plugins,Standard Assets,ThirdParty, and similar) unless you tick them in the preview. - Your own subclasses of
StandaloneInputModule. They are listed; derive them fromInputSystemUIInputModuleby hand. - Code in
#ifbranches that are off in the editor, such as#if UNITY_ANDROID. The preview shows these as notes. The checklist also compiles the project as it will build with the Input System only, and blocks the switch if a branch would break. - The Input Manager itself (
ProjectSettings/InputManager.asset). Your axes stay where they are. If you change them later, Input Porter warns when you enter Play mode or build. Preview and apply again to bring the bridge up to date (the preview shows the axis settings update). - Other input plugins such as Rewired or InControl. They are named on the checklist with what to check in their own settings.
OnMouse callbacks
OnMouseDown, OnMouseEnter, and the other OnMouse* callbacks keep firing without
any scene changes. From Unity 6000.6 Unity sends them itself with the Input System.
On earlier Unity 6 versions the bridge sends them, in the same order legacy input did.
The bridge stays
Migrated code calls LegacyInput, which is part of Input Porter. Keep the package
installed while any code uses it. To remove Input Porter, Undo the whole migration
first (see Undo and recovery).