Skip to content

Commit 9afba98

Browse files
author
Felix Weilbach
committed
Show warning when no camera is used
Show a warning if meshes get rendererd without a camera. Fix: bevyengine#1432
1 parent 6308041 commit 9afba98

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

crates/bevy_render/src/camera/camera.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::{
22
camera::CameraProjection,
3+
mesh::Mesh,
34
prelude::Image,
45
render_asset::RenderAssets,
56
render_resource::TextureView,
@@ -16,6 +17,7 @@ use bevy_ecs::{
1617
reflect::ReflectComponent,
1718
system::{Commands, Query, Res},
1819
};
20+
use bevy_log::warn;
1921
use bevy_math::{Mat4, Ray, UVec2, UVec4, Vec2, Vec3};
2022
use bevy_reflect::prelude::*;
2123
use bevy_reflect::FromReflect;
@@ -529,3 +531,14 @@ pub fn extract_cameras(
529531
}
530532
}
531533
}
534+
535+
pub fn check_has_camera(
536+
mesh_query: Extract<Query<&Handle<Mesh>>>,
537+
camera_query: Extract<Query<&Camera>>,
538+
) {
539+
let has_meshes = !mesh_query.is_empty();
540+
let has_cameras = !camera_query.is_empty();
541+
if has_meshes && !has_cameras {
542+
warn!("Trying to render meshes without a camera will not show anything!");
543+
}
544+
}

crates/bevy_render/src/camera/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ impl Plugin for CameraPlugin {
2727
.add_plugin(CameraProjectionPlugin::<PerspectiveProjection>::default());
2828

2929
if let Ok(render_app) = app.get_sub_app_mut(RenderApp) {
30+
render_app.add_system_to_stage(RenderStage::Extract, check_has_camera);
3031
render_app.add_system_to_stage(RenderStage::Extract, extract_cameras);
3132

3233
let camera_driver_node = CameraDriverNode::new(&mut render_app.world);

0 commit comments

Comments
 (0)