Fix debug UI not working at all
CI / build-and-test (pull_request) Successful in 1m30s
CI / production-build (pull_request) Successful in 10m51s

This commit is contained in:
2026-09-24 22:29:34 +02:00
parent 9a3a1383ff
commit 2e06cbb4b7
4 changed files with 30 additions and 28 deletions
+23 -4
View File
@@ -3,11 +3,9 @@
use std::{collections::HashMap, time::Duration};
use bevy::{
input::InputSystems,
prelude::*,
settings::{ReflectSettingsGroup, SaveSettingsDeferred, SettingsGroup},
camera::{CameraOutputMode, visibility::RenderLayers}, input::InputSystems, prelude::*, render::render_resource::BlendState, settings::{ReflectSettingsGroup, SaveSettingsDeferred, SettingsGroup},
};
use bevy_egui::{EguiContexts, EguiPrimaryContextPass, egui};
use bevy_egui::{EguiContexts, EguiGlobalSettings, EguiPrimaryContextPass, PrimaryEguiContext, egui};
use bevy_ggrs::{RollbackFrameRate, RunGgrsSystems};
use enum_cycling::EnumCycle;
use enum_cycling_derive::EnumCycle;
@@ -397,6 +395,7 @@ impl Plugin for DebugToolsPlugin {
.before(RunGgrsSystems)
.run_if(in_state(AppState::InMatch)),
)
.add_systems(Startup, spawn_egui_camera)
.add_systems(PreUpdate, restore_frame_step_time.after(RunGgrsSystems))
.add_systems(
Update,
@@ -408,6 +407,26 @@ impl Plugin for DebugToolsPlugin {
}
}
pub fn spawn_egui_camera(mut commands: Commands, mut egui_global_settings: ResMut<EguiGlobalSettings>,) {
egui_global_settings.auto_create_primary_context = false;
commands.spawn((
// The `PrimaryEguiContext` component requires everything needed to render a primary context.
PrimaryEguiContext,
Camera2d,
// Setting RenderLayers to none makes sure we won't render anything apart from the UI.
RenderLayers::none(),
Camera {
order: 2,
output_mode: CameraOutputMode::Write {
blend_state: Some(BlendState::ALPHA_BLENDING),
clear_color: ClearColorConfig::None,
},
clear_color: ClearColorConfig::Custom(Color::NONE),
..default()
},
));
}
fn player_handles(players: &Query<&Player>) -> Vec<usize> {
let mut handles = players
.iter()