From 9bf3767141f7d7888690cf26d542a008c0cbb886 Mon Sep 17 00:00:00 2001 From: Jakob Hellermann Date: Fri, 12 Feb 2021 12:19:59 +0100 Subject: [PATCH 1/2] warn if the world contains ui nodes but no camera --- crates/bevy_ui/src/lib.rs | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/crates/bevy_ui/src/lib.rs b/crates/bevy_ui/src/lib.rs index b066e1d29ea7b..0e745809c524a 100644 --- a/crates/bevy_ui/src/lib.rs +++ b/crates/bevy_ui/src/lib.rs @@ -20,8 +20,11 @@ pub mod prelude { } use bevy_app::prelude::*; -use bevy_ecs::{IntoSystem, ParallelSystemDescriptorCoercion, SystemStage}; -use bevy_render::render_graph::RenderGraph; +use bevy_ecs::{prelude::*, IntoSystem, ParallelSystemDescriptorCoercion, SystemStage}; +use bevy_render::{ + camera::{Camera, OrthographicProjection}, + render_graph::RenderGraph, +}; use update::ui_z_system; #[derive(Default)] @@ -52,10 +55,30 @@ impl Plugin for UiPlugin { ) .add_system_to_stage(stage::UI, flex_node_system.system().label(system::FLEX)) .add_system_to_stage(stage::UI, ui_z_system.system()) - .add_system_to_stage(bevy_render::stage::DRAW, widget::draw_text_system.system()); + .add_system_to_stage(bevy_render::stage::DRAW, widget::draw_text_system.system()) + .add_startup_system_to_stage( + bevy_app::startup_stage::POST_STARTUP, + warn_no_ui_cam.system(), + ); let resources = app.resources(); let mut render_graph = resources.get_mut::().unwrap(); render_graph.add_ui_graph(resources); } } + +fn warn_no_ui_cam( + node_query: Query>, + ui_cam_query: Query<&Camera, With>, +) { + let world_contains_nodes = node_query.iter().next().is_some(); + let world_contains_ui_cam = ui_cam_query + .iter() + .any(|cam| cam.name.as_deref() == Some(crate::camera::CAMERA_UI)); + + if world_contains_nodes && !world_contains_ui_cam { + bevy_log::warn!( + "The world contains ui nodes but no ui camera. Consider spawning a UiCameraBundle." + ); + } +} From 0544603517fdbd6a33cedeb2d7b9768261eb8327 Mon Sep 17 00:00:00 2001 From: Jakob Hellermann Date: Sat, 13 Feb 2021 12:02:33 +0100 Subject: [PATCH 2/2] add ValidationConfig for configuring which check's get run --- crates/bevy_core/src/lib.rs | 27 +++++++++++++++++++++++++++ crates/bevy_ui/src/lib.rs | 12 ++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/crates/bevy_core/src/lib.rs b/crates/bevy_core/src/lib.rs index 368889cb6c3b4..a7dc1608ce5f9 100644 --- a/crates/bevy_core/src/lib.rs +++ b/crates/bevy_core/src/lib.rs @@ -37,6 +37,7 @@ impl Plugin for CorePlugin { app.init_resource::