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.