diff --git a/editor.ron b/editor.ron index 568a978..8598382 100644 --- a/editor.ron +++ b/editor.ron @@ -1,8 +1,8 @@ { - "space_editor_ui::settings::NewWindowSettings": "{\"space_editor_ui::settings::NewWindowSettings\":(new_tab:SameNode)}", - "space_editor_ui::settings::GameModeSettings": "{\"space_editor_ui::settings::GameModeSettings\":(mode:Game3D)}", "space_editor_core::hotkeys::HotkeySet": "{\"space_editor_core::hotkeys::HotkeySet\":(bindings:{Clone:[AltLeft],Rotate:[KeyR],Multiple:[ShiftLeft],Delete:[KeyX],Translate:[KeyG],Scale:[KeyS]},name:\"GizmoHotkey\")}", "space_persistence::PersistenceSettings": "{\"space_persistence::PersistenceSettings\":(load_on_startup:true,save_on_close:true)}", "space_undo::ChangeChainSettings": "{\"space_undo::ChangeChainSettings\":(max_change_chain_size:200)}", + "space_editor_ui::settings::GameModeSettings": "{\"space_editor_ui::settings::GameModeSettings\":(mode:Game3D)}", "space_editor_ui::sizing::Sizing": "{\"space_editor_ui::sizing::Sizing\":(icon:Regular,gizmos:Gizmos,text:14.0)}", + "space_editor_ui::settings::NewWindowSettings": "{\"space_editor_ui::settings::NewWindowSettings\":(new_tab:SameNode)}", } \ No newline at end of file diff --git a/studio/src/camera_controller.rs b/studio/src/camera_controller.rs index cac0505..62c2644 100644 --- a/studio/src/camera_controller.rs +++ b/studio/src/camera_controller.rs @@ -1,8 +1,7 @@ use std::f32::consts; use bevy::{ - prelude::*, - window::{CursorGrabMode, PrimaryWindow}, + prelude::*, render::camera::Viewport, window::{CursorGrabMode, PrimaryWindow} }; use crate::{ @@ -13,6 +12,7 @@ use crate::{ NearlyZero, Velocity, }, }; +use crate::MainCamera; pub struct CameraControllerPlugin; @@ -27,12 +27,36 @@ impl Plugin for CameraControllerPlugin { camera_control_kinematic, (process_physical_inputs, process_focus_inputs).before(InterpolationSystem), (camera_control_physical, interp_camera_focus).after(InterpolationSystem), + ) .in_set(CameraMotionSystem), - ); + ); + + #[cfg(not(feature = "wasm"))] + app.add_systems(PreUpdate, sync_camera_viewport); } } +#[cfg(not(feature = "wasm"))] +fn sync_camera_viewport( + mut camera: Query<&mut Camera, With>, + mut window: Query<&mut Window, With>,) +{ + let Ok(mut camera) = camera.get_single_mut() else { + return; + }; + + let Ok(mut window) = window.get_single_mut() else { + return; + }; + + camera.viewport = Some(Viewport { + physical_position: UVec2::new(0, 0), + physical_size: UVec2::new(window.physical_width(), window.physical_height()), + ..default() + }) +} + #[derive(Component)] pub struct CameraController { pub focus: Vec3,