From b03afdea6483bd6ccffd892a0a16e0847e746d6a Mon Sep 17 00:00:00 2001 From: Stedd Date: Sat, 2 Sep 2023 12:56:11 +0200 Subject: [PATCH] Assign and sync player name and color on connect --- Assets/Prefabs/Player.prefab | 16 ++++++++++++++++ Assets/Scripts/MyNetworkManager.cs | 11 ++++------- Assets/Scripts/MyNetworkPlayer.cs | 18 ++++++++++++++++++ Assets/Scripts/MyNetworkPlayer.cs.meta | 11 +++++++++++ 4 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 Assets/Scripts/MyNetworkPlayer.cs create mode 100644 Assets/Scripts/MyNetworkPlayer.cs.meta diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index 491dc06..ba5ed23 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -115,6 +115,7 @@ GameObject: m_Component: - component: {fileID: 6498975337014063786} - component: {fileID: 2811985185363063978} + - component: {fileID: 1756213952929103018} m_Layer: 0 m_Name: Player m_TagString: Untagged @@ -155,3 +156,18 @@ MonoBehaviour: serverOnly: 0 visible: 0 hasSpawned: 0 +--- !u!114 &1756213952929103018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9197140212603367960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 91a604620298dff4fb1301fafef543f7, type: 3} + m_Name: + m_EditorClassIdentifier: + syncDirection: 0 + syncMode: 0 + syncInterval: 0 diff --git a/Assets/Scripts/MyNetworkManager.cs b/Assets/Scripts/MyNetworkManager.cs index 4416de1..68d1dc1 100644 --- a/Assets/Scripts/MyNetworkManager.cs +++ b/Assets/Scripts/MyNetworkManager.cs @@ -3,15 +3,12 @@ using UnityEngine; public class MyNetworkManager : NetworkManager { - public override void OnClientConnect() - { - base.OnClientConnect(); - Debug.LogError("Client connected to the server!"); - } - public override void OnServerAddPlayer(NetworkConnectionToClient conn) { base.OnServerAddPlayer(conn); - Debug.LogError($"Player connected! total connected players: {numPlayers.ToString()}"); + + MyNetworkPlayer player = conn.identity.GetComponent(); + player.SetDisplayName($"Player {numPlayers.ToString()}"); + player.SetPlayerColor(new(Random.value, Random.value , Random.value )); } } \ No newline at end of file diff --git a/Assets/Scripts/MyNetworkPlayer.cs b/Assets/Scripts/MyNetworkPlayer.cs new file mode 100644 index 0000000..239e6c8 --- /dev/null +++ b/Assets/Scripts/MyNetworkPlayer.cs @@ -0,0 +1,18 @@ +using Mirror; +using UnityEngine; + +public class MyNetworkPlayer : NetworkBehaviour +{ + [SyncVar] [SerializeField] private string _displayName = "Missing Name"; + [SyncVar] [SerializeField] private Color _playerColor = Color.black; + + public void SetDisplayName(string newDisplayName) + { + _displayName = newDisplayName; + } + + public void SetPlayerColor(Color newPlayerColor) + { + _playerColor = newPlayerColor; + } +} \ No newline at end of file diff --git a/Assets/Scripts/MyNetworkPlayer.cs.meta b/Assets/Scripts/MyNetworkPlayer.cs.meta new file mode 100644 index 0000000..d099c85 --- /dev/null +++ b/Assets/Scripts/MyNetworkPlayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91a604620298dff4fb1301fafef543f7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: