Quick answer: Disable gameplay ActionMap before starting async load. Reset to clear held state. Switch to a Loading map for skip/cancel only. Re-enable gameplay map after scene activation.

Player presses Jump during a loading screen. New scene loads, character jumps immediately. Queued action fired on activation.

The Symptom

Player actions trigger from buffered input on scene transitions. Camera moves, player jumps, abilities fire all at once.

The Fix

public class SceneTransition : MonoBehaviour
{
    public InputActionAsset asset;
    public CanvasGroup loadingScreen;

    public IEnumerator LoadScene(string name)
    {
        var gameplay = asset.FindActionMap("Gameplay");
        gameplay.Disable();
        foreach (var a in gameplay.actions) a.Reset();

        loadingScreen.alpha = 1;
        var op = SceneManager.LoadSceneAsync(name);
        while (!op.isDone) yield return null;
        loadingScreen.alpha = 0;

        gameplay.Enable();
    }
}

Disable + Reset before load. Enable after activation. Held keys must be released before they re-trigger.

Verifying

Spam keys during a load. New scene loads with no queued actions. Player must press fresh to act.

“Disable. Reset. Switch maps. Load. Re-enable. Clean.”

Related Issues

For ActionMap pause leak, see pause leak. For action double-fire, see double-fire.

No queued actions. Clean transitions.