bevyengine / bevyengine/bevy

Add freecam camera controller to more 3D examples

Open
#21,459 0 comments 0 reactions 0 assignees View on GitHub
A-Camera A-Dev-Tools C-Examples S-Needs-Design
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## What problem does this solve or what need does it fill?

Being able to explore scenes is great! Now that the freecam controller is less weird (#20215), we should add it to more examples to move around them.

## What solution would you like?

Add `CameraControllerPlugin` and the `FreeCam` component, along with a required feature for the example.

We should only add this to examples that are about *showcasing* something visual. Examples that are about teaching specific tools / achieving ends / being a game should generally not have this added to them, as it's noisy and can interfere with other controls.

Add this one example per PR, to avoid getting the easy wins bogged down in controversy.

## What alternative(s) have you considered?

Users can add this on their own easily enough. Unfortunately beginners won't know to do this, and it's also somewhat annoying, especially for engine dev where you want to test changes quickly.

## Additional context

We should consider whether or not we want to do this before the "examples with non-default features" is improved. See #21369 for more discussion on this point.

Contributor guide

Open the contributing guide

Research direction

Read #20215 for the current CameraControllerPlugin and FreeCam usage, then review the 3D examples to identify one visual showcase rather than a teaching example or game. Add the controller, component, and required feature to that one example, and confirm its existing controls still work.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.