# Objective
- Fixes https://github.com/bevyengine/bevy/issues/24141
## Solution
- Added Two additional keys (R & F) for local space Y velocity.
- following the [Blender Walk/Fly
Mode](https://docs.blender.org/manual/en/latest/editors/3dview/navigate/walk_fly.html)
controls.
- Added `FreeCamera::invert_world_local_control()` for alternative
keybinds where Q/E is local Space instead, and R/F is world Space.
- Some user probably more familiar with Q/E as local space up.
- Updated Examples to resolve key conflict with scroll factor controls
- from F/G to G/H
Note: This is my first contribution. If there's anything I am missing
please point it out :)
## Testing
- Did you test these changes? If so, how?
- I tested with `free_camera_controller` example
- Are there any parts that need more testing?
- Don't think so.
- How can other people (reviewers) test your changes? Is there anything
specific they need to know?
- Don't think so. Straightforward change.
- If relevant, what platforms did you test these changes on, and are
there any important ones you can't test?
- tested on Windows 11. It's not platform specific so should be ok.
---------
Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
# Objective
- Currently, the `FreeCamera` uses MouseButton::Left for cursor
grabbing, which risks input conflicts, for example, if scene selection
tools are introduced, as both actions would map to the same trigger.
- Remapping this to MouseButton::Right aligns with industry-standard
interaction paradigms (e.g., Unity, Unreal, Blender), where the right
mouse button is reserved for view manipulation, leaving the left button
exclusively for object selection and UI interaction."
## Solution
- Changed mouse grab button from Left to Right for `FreeCamera`
## Testing
- The `free_camera_controller` example works properly.
- CI
---
# Objective
- The `free_camera_controller` example currently shows the unmodified
base speeds in the UI, but not the actual speed influenced by the scroll
multiplier. This can be confusing, as the displayed values don’t match
the camera’s behavior.
- In most use cases, users prefer to see the real-time effective speed
rather than just viewing the static configuration values they have
already set. We should demonstrate how to do that.
## Solution
- `* free_camera_state.speed_multiplier`
## Testing
- CI
---
# Objective
This PR fixes#21569, which proposes renaming the newly introduced
camera controller modules `FreeCam` and `PanCam` to use the full term
`Camera`.
## Solution
* Renamed the `PanCam` controller, `PanCamPlugin`, and related methods
to use the full term `Camera` instead of the abbreviation `Cam`.
* Renamed the module from `pan_cam` to `pan_camera` for consistency with
naming conventions.
* Updated the example `pan_camera_controller` and adjusted usage of the
renamed controller and plugin.
* Updated documentation and release notes accordingly.
## Follow-up Work
I see two options from here:
1. **Use this PR as a reference** for renaming `FreeCam`. The process is
similar and could be a great first issue for someone looking to
contribute to the new camera modules or Bevy in general. Most of the
changes follow the same pattern, although `FreeCam` has more examples
that need updating. One could find them using `grep` (e.g., `grep
FreeCam`) or by reviewing the diff from the PR that introduced
`FreeCam`: #20215
2. **I can continue and update this PR** to also handle the `FreeCam`
renaming, if you'd prefer to resolve the entire issue in one go.
---------
Co-authored-by: syszery <syszery@users.noreply.github.com>