configured ui camera

This commit is contained in:
2026-03-16 16:59:29 -04:00
parent 227b654e50
commit 3551ecfde8
4 changed files with 57 additions and 16 deletions

View File

@@ -1,4 +1,5 @@
use bevy::anti_alias::taa::TemporalAntiAliasing;
use bevy::camera::visibility::RenderLayers;
use bevy::core_pipeline::prepass::DepthPrepass;
use bevy::input::mouse::{MouseMotion, MouseScrollUnit, MouseWheel};
use bevy::prelude::*;
@@ -53,8 +54,8 @@ fn setup(mut commands: Commands)
PhosOrbitCamera::default(),
TemporalAntiAliasing::default(),
))
.insert(Msaa::Off);
// .insert(RenderLayers::layer(0))
.insert(Msaa::Off)
.insert(RenderLayers::default());
// *msaa = Msaa::Off;
}

View File

@@ -1,5 +1,11 @@
use bevy::{camera::visibility::RenderLayers, prelude::*};
use bevy::{
camera::{visibility::RenderLayers, CameraOutputMode, Viewport},
prelude::*,
render::render_resource::BlendState,
};
use shared::states::AssetLoadState;
use crate::ui::states::BuildUIState;
pub struct BuildUIPlugin;
impl Plugin for BuildUIPlugin
@@ -7,33 +13,63 @@ impl Plugin for BuildUIPlugin
fn build(&self, app: &mut App)
{
app.add_systems(Startup, setup_cameras);
app.add_systems(Update, spawn_ui.run_if(in_state(AssetLoadState::LoadComplete)));
app.insert_state(BuildUIState::Init);
app.add_systems(
Update,
spawn_ui.run_if(in_state(AssetLoadState::LoadComplete).and(in_state(BuildUIState::Init))),
);
}
}
fn setup_cameras(mut commands: Commands)
{
commands.spawn((Camera2d, IsDefaultUiCamera, RenderLayers::layer(2)));
commands
.spawn((
Camera2d,
Camera {
order: 1,
clear_color: ClearColorConfig::None,
msaa_writeback: MsaaWriteback::Always,
// viewport: Some(Viewport {
// physical_size: UVec2::new(800, 800),
// ..default()
// }),
output_mode: CameraOutputMode::Write {
blend_state: Some(BlendState::ALPHA_BLENDING),
clear_color: ClearColorConfig::None,
},
..default()
},
IsDefaultUiCamera,
))
.insert(RenderLayers::layer(1))
.insert(Msaa::Off);
}
fn spawn_ui(mut commands: Commands)
fn spawn_ui(mut commands: Commands, mut next_state: ResMut<NextState<BuildUIState>>)
{
commands
.spawn((Node {
.spawn((
Node {
width: Val::Percent(100.),
height: Val::Percent(100.),
justify_content: JustifyContent::Center,
align_items: AlignItems::End,
..default()
},))
},
RenderLayers::layer(1),
))
// .insert(PickingBehavior::IGNORE)
.with_children(|parent| {
parent.spawn((
Node {
width: Val::Px(500.),
height: Val::Px(100.),
..Default::default()
},
BackgroundColor(LinearRgba::GREEN.into()),
));
});
next_state.set(BuildUIState::Update);
}

View File

@@ -1 +1,2 @@
pub mod build_ui;
pub mod states;

View File

@@ -1,7 +1,8 @@
use bevy::prelude::*;
#[derive(States, Debug, Clone, PartialEq, Eq, Hash)]
pub enum MenuState {
pub enum MenuState
{
Loading,
Startup,
MainMenu,
@@ -10,14 +11,16 @@ pub enum MenuState {
}
#[derive(States, Debug, Clone, PartialEq, Eq, Hash)]
pub enum GameplayState {
pub enum GameplayState
{
Waiting,
PlaceHQ,
Playing,
}
#[derive(States, Debug, Clone, PartialEq, Eq, Hash)]
pub enum AssetLoadState {
pub enum AssetLoadState
{
Loading,
FinalizeAssets,
LoadComplete,