removing sync node

This commit is contained in:
2025-08-07 22:52:49 -05:00
parent 83adac8b43
commit 1ce22e44d9
3 changed files with 34 additions and 41 deletions

View File

@@ -40,6 +40,8 @@ func _ready() -> void:
check_command_line() check_command_line()
multiplayer.server_relay = true
func _process(delta): func _process(delta):
if not steam_initialized: if not steam_initialized:
return return
@@ -153,7 +155,7 @@ func spawn_player(peer_id: int):
add_child(new_player) add_child(new_player)
new_player.position = Vector3.UP new_player.position = Vector3.UP
new_player.set_player_name(player_name) new_player.set_player_name(player_name)
new_player.set_multiplayer_authority(peer_id) new_player.set_multiplayer_authority(peer_id, true)
new_player.setup_player() new_player.setup_player()
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=3 uid="uid://csmfxg011xisf"] [gd_scene load_steps=6 format=3 uid="uid://csmfxg011xisf"]
[ext_resource type="Script" uid="uid://dopyfulbw2mx5" path="res://player/player.gd" id="1_ulp21"] [ext_resource type="Script" uid="uid://dopyfulbw2mx5" path="res://player/player.gd" id="1_ulp21"]
@@ -13,17 +13,6 @@ size = Vector3(0.5, 0.5, 0.5)
[sub_resource type="SphereMesh" id="SphereMesh_wnvi2"] [sub_resource type="SphereMesh" id="SphereMesh_wnvi2"]
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_ulp21"]
properties/0/path = NodePath(".:position")
properties/0/spawn = true
properties/0/replication_mode = 2
properties/1/path = NodePath(".:rotation")
properties/1/spawn = true
properties/1/replication_mode = 2
properties/2/path = NodePath("Label3D:text")
properties/2/spawn = true
properties/2/replication_mode = 2
[node name="Player" type="CharacterBody3D"] [node name="Player" type="CharacterBody3D"]
collision_layer = 2 collision_layer = 2
collision_mask = 3 collision_mask = 3
@@ -62,9 +51,6 @@ layers = 2
mesh = SubResource("SphereMesh_wnvi2") mesh = SubResource("SphereMesh_wnvi2")
skeleton = NodePath("../..") skeleton = NodePath("../..")
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_ulp21")
[node name="Label3D" type="Label3D" parent="."] [node name="Label3D" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.887858, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.887858, 0)
billboard = 1 billboard = 1

View File

@@ -8,7 +8,6 @@ class_name Player
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
var camera_node: Camera3D var camera_node: Camera3D
func setup_player(): func setup_player():
if is_multiplayer_authority(): if is_multiplayer_authority():
print("-> [%s] Authority granted. Setting up camera and input." % name) print("-> [%s] Authority granted. Setting up camera and input." % name)
@@ -22,9 +21,13 @@ func set_player_name(player_name: String):
$Label3D.text = player_name $Label3D.text = player_name
@rpc("any_peer", "call_local", "unreliable")
func update_remote_transform(new_transform: Transform3D):
global_transform = new_transform
func _physics_process(delta): func _physics_process(delta):
if !is_multiplayer_authority(): if is_multiplayer_authority():
return
# Apply gravity # Apply gravity
if not is_on_floor(): if not is_on_floor():
velocity.y -= gravity * delta velocity.y -= gravity * delta
@@ -48,9 +51,11 @@ func _physics_process(delta):
# Air control # Air control
velocity.x = lerp(velocity.x, direction.x * speed, delta * 5.0) velocity.x = lerp(velocity.x, direction.x * speed, delta * 5.0)
velocity.z = lerp(velocity.z, direction.z * speed, delta * 5.0) velocity.z = lerp(velocity.z, direction.z * speed, delta * 5.0)
move_and_slide() move_and_slide()
update_remote_transform.rpc("unreliable", global_transform)
func _input(event): func _input(event):
if !is_multiplayer_authority(): if !is_multiplayer_authority():
return return