bevy/release-content/release-notes
Kristoffer Søholm 2119838e27
Add support for ButtonInput<Key> (#19684)
# Objective

While `KeyCode` is very often the correct way to interact with keyboard
input there are a bunch of cases where it isn't, notably most of the
symbols (e.g. plus, minus, different parentheses). Currently the only
way to get these is to read from `EventReader<KeyboardInput>`, but then
you'd have to redo the `ButtonInput` logic for pressed/released to e.g.
make zoom functionality that depends on plus/minus keys.

This has led to confusion previously, like
https://github.com/bevyengine/bevy/issues/3278

## Solution

Add a `ButtonInput<Key>` resource.

## Testing

Modified the `keyboard_input` example to test it.

## Open questions

I'm not 100% sure this is the right way forward, since it duplicates the
key processing logic and might make people use the shorter
`ButtonInput<Key>` even when it's not appropriate.

Another option is to add a new struct with both `Key` and `KeyCode`, and
use `ButtonInput` with that instead. That would make it more
explanatory, but that is a lot of churn.

The third alternative is to not do this because it's too niche.

I'll add more documentation and take it out of draft if we want to move
forward with it.
2025-06-18 20:15:03 +00:00
..
.gitkeep
bevy_solari.md Initial raytraced lighting progress (bevy_solari) (#19058) 2025-06-12 21:26:10 +00:00
convert-coordinates.md Allow users to fix glTF coordinate system imports (#19633) 2025-06-16 21:47:34 +00:00
entity-spawn-ticks.md Fix EntityMeta.spawned_or_despawned unsoundness (#19350) 2025-05-27 22:45:07 +00:00
event_split.md Event Split: Event, EntityEvent, and BufferedEvent (#19647) 2025-06-15 16:46:34 +00:00
headless-widgets.md Core slider (#19584) 2025-06-15 00:53:31 +00:00
hot_patching.md Hot patching systems with subsecond (#19309) 2025-06-03 21:12:38 +00:00
key_buttoninput.md Add support for ButtonInput<Key> (#19684) 2025-06-18 20:15:03 +00:00
log-diagnostics-state-public.md Expose LogDiagnosticsState (#19323) 2025-05-23 20:56:36 +00:00
observer_overhaul.md Exposes Observer's system's name (#19611) 2025-06-17 22:38:31 +00:00
specialized_ui_transform.md Specialized UI transform (#16615) 2025-06-09 19:05:49 +00:00
system_set_naming_convention.md Adopt consistent FooSystems naming convention for system sets (#18900) 2025-05-06 15:18:03 +00:00
text-background-colors.md
ui_gradients.md Rename Position to UiPosition in bevy_ui (#19422) 2025-05-29 14:52:44 +00:00
viewport-node.md Add a viewport UI widget (#17253) 2025-05-05 22:57:37 +00:00