bevy_camera_controller/lib.rs
1//! A home for first-party camera controllers for Bevy,
2//! used for moving the camera around your scene.
3//!
4//! This crate serves two key purposes:
5//!
6//! 1. It provides functional camera controllers to help users quickly get started.
7//! 2. It holds the camera controllers used by Bevy's own examples and tooling.
8//!
9//! While these camera controllers are customizable,
10//! there is a limit to the customization options available.
11//! If you find your project requires different behavior,
12//! do not hesitate to copy-paste the camera controller code
13//! into your own project and modify it as needed.
14//!
15//! Each of the provided controllers is gated behind a feature flag,
16//! so you don't have to pay for unused camera controllers.
17//! These features are all off by default; to enable them,
18//! you need to specify the desired features in your Cargo.toml file.
19//!
20//! For example, to enable the `free_camera` camera controller,
21//! you would add the following to your Cargo.toml:
22//!
23//! ```toml
24//! [dependencies]
25//! bevy = { version = "0.X", features = ["free_camera"] }
26//! ```
27//!
28//! Once the correct feature is enabled,
29//! add the camera controller plugin to your Bevy app.
30//! If your camera is for debugging and development purposes,
31//! consider adding a feature flag (e.g. `dev-mode`) or a run condition on
32//! the systems in the plugin, which can check a configuration resource.
33//!
34//! For a full overview of the available camera controllers,
35//! please check out the modules of this crate.
36//! Each camera controller is stored in its own module,
37//! and gated behind a feature flag of the same name.
38
39#![warn(missing_docs)]
40
41#[cfg(feature = "free_camera")]
42pub mod free_camera;
43
44#[cfg(feature = "pan_camera")]
45pub mod pan_camera;