
# Objective Draw the UI debug overlay using the UI renderer. Significantly simpler and easier to use than `bevy_dev_tools::ui_debug_overlay` which uses `bevy_gizmos`. * Supports multiple windows and UI rendered to texture. * Draws rounded debug rects for rounded UI nodes. Fixes #16666 ## Solution Removed the `ui_debug_overlay` module from `bevy_dev_tools`. Added a `bevy_ui_debug` feature gate. Draw the UI debug overlay using the UI renderer. Adds a new module `bevy_ui::render::debug_overlay`. The debug overlay extraction function queries for the existing UI layout and then adds a border around each UI node with `u32::MAX / 2` added to each stack index so it's drawn on top. There is a `UiDebugOptions` resource that can be used to enable or disable the debug overlay and set the line width. ## Testing The `testbed_ui` example has been changed to use the new debug overlay: ``` cargo run --example testbed_ui --features bevy_ui_debug ``` Press Space to toggle the debug overlay on and off. --- ## Showcase <img width="961" alt="testbed-ui-new-debug" src="https://github.com/user-attachments/assets/e9523d18-39ae-46a8-adbe-7d3f3ab8e951"> ## Migration Guide The `ui_debug_overlay` module has been removed from `bevy_dev_tools`. There is a new debug overlay implemented using the `bevy_ui` renderer. To use it, enable the `bevy_ui_debug` feature and set the `enable` field of the `UiDebugOptions` resource to `true`.
53 lines
1.6 KiB
Rust
53 lines
1.6 KiB
Rust
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
|
|
#![forbid(unsafe_code)]
|
|
#![doc(
|
|
html_logo_url = "https://bevyengine.org/assets/icon.png",
|
|
html_favicon_url = "https://bevyengine.org/assets/icon.png"
|
|
)]
|
|
|
|
//! This crate provides additional utilities for the [Bevy game engine](https://bevyengine.org),
|
|
//! focused on improving developer experience.
|
|
|
|
use bevy_app::prelude::*;
|
|
|
|
#[cfg(feature = "bevy_ci_testing")]
|
|
pub mod ci_testing;
|
|
|
|
pub mod fps_overlay;
|
|
|
|
pub mod states;
|
|
|
|
/// Enables developer tools in an [`App`]. This plugin is added automatically with `bevy_dev_tools`
|
|
/// feature.
|
|
///
|
|
/// Warning: It is not recommended to enable this in final shipped games or applications.
|
|
/// Dev tools provide a high level of access to the internals of your application,
|
|
/// and may interfere with ordinary use and gameplay.
|
|
///
|
|
/// To enable developer tools, you can either:
|
|
///
|
|
/// - Create a custom crate feature (e.g "`dev_mode`"), which enables the `bevy_dev_tools` feature
|
|
/// along with any other development tools you might be using:
|
|
///
|
|
/// ```toml
|
|
/// [feature]
|
|
/// dev_mode = ["bevy/bevy_dev_tools", "other_dev_tools"]
|
|
/// ```
|
|
///
|
|
/// - Use `--feature bevy/bevy_dev_tools` flag when using the `cargo run` command:
|
|
///
|
|
/// `cargo run --features bevy/bevy_dev_tools`
|
|
///
|
|
/// - Add the `bevy_dev_tools` feature to the bevy dependency in your `Cargo.toml` file:
|
|
///
|
|
/// `features = ["bevy_dev_tools"]`
|
|
///
|
|
/// Note: The third method is not recommended, as it requires you to remove the feature before
|
|
/// creating a build for release to the public.
|
|
#[derive(Default)]
|
|
pub struct DevToolsPlugin;
|
|
|
|
impl Plugin for DevToolsPlugin {
|
|
fn build(&self, _app: &mut App) {}
|
|
}
|