Quick answer: Unity Input System callbacks still firing on a disabled MonoBehaviour? action.performed += handler survives the disable; unbind in OnDisable.

A weapon component subscribes to FireAction; disabling the weapon during reload still fires its handler.

Pair Subscribe/Unsubscribe

void OnEnable() { fireAction.performed += OnFire; }
void OnDisable() { fireAction.performed -= OnFire; }

Bind in OnEnable; unbind in OnDisable. Component disable now stops the callback.

PlayerInput Component

If you use PlayerInput, its callbacks are tied to the component’s enable/disable state. Manual subscriptions need the unbind pattern; PlayerInput handles it automatically.

Action Map Switching

Switching action maps (gameplay vs UI) disables one and enables the other. Re-subscribe on map activation if you bind directly to specific actions.

OnDestroy Cleanup

For full lifecycle, also unbind in OnDestroy. Some pooled-object patterns destroy without disabling first.

Verifying

Disabling the component stops its input callbacks. Re-enabling resumes them. No double-firing after toggle.

“Input subscriptions survive disable. Unbind in OnDisable.”

Wrap the bind / unbind in a tiny utility — you can’t forget to unbind because the utility hands you the unbind handle on subscribe.