Skip to content

Upstream bevy_editor_cam #19741

Open
Open
@alice-i-cecile

Description

@alice-i-cecile

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:

  1. Provide the basis for simpler tools, such as a toggleable fly camera for inspecting the scene while the game is paused.
  2. 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.
  3. Be generally useful to end users building tooling, CAD-style software or even some forms of games.

Implementation strategy

  1. 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.
  2. 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.
  3. Create follow-up PRs to fix bugs, improve docs and so on in the ordinary fashion.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-CameraUser-facing camera APIs and controllers.A-EditorGraphical tools to make Bevy gamesC-FeatureA new feature, making something new possibleS-Ready-For-ImplementationThis issue is ready for an implementation PR. Go for it!X-ControversialThere is active debate or serious implications around merging this PR

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions