Camera update multiplayer (#93)

This commit is contained in:
PROMETHIA-27
2025-12-20 19:47:45 -05:00
committed by GitHub
parent ac8c834f2f
commit dbcd822b50
3 changed files with 19 additions and 10 deletions

View File

@@ -131,12 +131,19 @@ fn update_ui(
#[cfg(feature = "client")] #[cfg(feature = "client")]
fn update( fn update(
mut cam: Query< cam: Single<
(&MainCamera, &mut Transform, &CameraRotationInput), (&MainCamera, &mut Transform, &CameraRotationInput),
(Without<CameraTarget>, Without<CameraArmRotation>), (Without<CameraTarget>, Without<CameraArmRotation>),
>, >,
target_q: Single<&Transform, (With<CameraTarget>, Without<CameraArmRotation>)>, target_q: Single<
arm_rotation: Single<&Transform, With<CameraArmRotation>>, (&Transform, &Children),
(
With<CameraTarget>,
With<LocalPlayer>,
Without<CameraArmRotation>,
),
>,
arm_rotation: Query<&Transform, With<CameraArmRotation>>,
spatial_query: SpatialQuery, spatial_query: SpatialQuery,
cam_state: Res<CameraState>, cam_state: Res<CameraState>,
) { ) {
@@ -144,11 +151,14 @@ fn update(
return; return;
} }
let arm_tf = arm_rotation; let (camera, mut cam_transform, cam_rotation_input) = cam.into_inner();
let Ok((camera, mut cam_transform, cam_rotation_input)) = cam.single_mut() else { let (target_q, children) = target_q.into_inner();
return;
}; let arm_tf = children
.iter()
.find_map(|child| arm_rotation.get(child).ok())
.unwrap();
if !camera.enabled { if !camera.enabled {
return; return;

View File

@@ -125,7 +125,7 @@ fn connect_to_server(
let authentication = bevy_replicon_renet::netcode::ClientAuthentication::Unsecure { let authentication = bevy_replicon_renet::netcode::ClientAuthentication::Unsecure {
client_id, client_id,
protocol_id: 0, protocol_id: 0,
server_addr: host_addr.clone(), server_addr: *host_addr,
user_data: None, user_data: None,
}; };
let transport = bevy_replicon_renet::netcode::NetcodeClientTransport::new( let transport = bevy_replicon_renet::netcode::NetcodeClientTransport::new(

View File

@@ -1,7 +1,6 @@
use std::net::SocketAddr;
use bevy::prelude::*; use bevy::prelude::*;
use clap::Parser; use clap::Parser;
use std::net::SocketAddr;
use steamworks::SteamId; use steamworks::SteamId;
pub fn plugin(app: &mut App) { pub fn plugin(app: &mut App) {