Open
Description
Background
@aevyrie's bevy_editor_cam is a high quality, editor/CAD focused camera crate.
The Bevy Editor will need one of these, and after some prototyping work, I'm confident that this is an excellent base for what we're going to need. There's no need to NIH, when we can instead EEE ;)
Because we intend to keep the Bevy Editor source code inside of the bevyengine/bevy
repo, and keep it up to date with main
, we cannot rely on external crates which depend on Bevy itself due to circular dependencies and synchronization challenges.
Proposal
Given this confidence, I think we should upstream this crate now. Even before we have an official Bevy Editor, having a polished first-part editor camera crate will:
- Provide the basis for simpler tools, such as a toggleable fly camera for inspecting the scene while the game is paused.
- Be very helpful in examples, by allowing us to reduce boilerplate and improve the ability for users to navigate the scene using a consistent set of controls.
- Be generally useful to end users building tooling, CAD-style software or even some forms of games.
Implementation strategy
- Create a PR adding a new
bevy_editor_camera
crate, clearly crediting @aevyrie and the original crate. There will be a small amount of work required to get it compiling, but no other changes should be made in that PR. - Create a PR or three to use this in our example code and remove existing camera controller code. As part of this, we should add a
ExampleCameraControlerPlugin
, which hard-codes various inputs in a standardized way. - Create follow-up PRs to fix bugs, improve docs and so on in the ordinary fashion.