Quick answer: Unity Input System action asset modified at runtime not reflected in active PlayerInput? PlayerInput caches the asset - assign actions = actions to force re-cache.

Add a new binding via script; existing PlayerInput components don't react until manually re-assigned.

Re-assign the asset

playerInput.actions = actions;

Forces cache refresh. New bindings picked up.

Or use InputSystem.actions

Global action access; cache-invalidates on modify.

Avoid runtime asset edits

Pre-build all action assets; switch via assignment, not modify.

“Action assets are cached. Cache needs explicit refresh.”

If you modify action assets at runtime, document the refresh pattern. The cache is the bug source.

Related reading