Skip to content

Commit f479872

Browse files
committed
Exctracted GetPlayerId to GameNetPortal
1 parent 9008d77 commit f479872

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/ClientGameNetPortal.cs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public class ClientGameNetPortal : MonoBehaviour
1919
private GameNetPortal m_Portal;
2020

2121
string m_JoinCode;
22-
OnlineMode m_OnlineMode;
2322

2423
/// <summary>
2524
/// If a disconnect occurred this will be populated with any contextual information that was available to explain why.
@@ -162,7 +161,7 @@ private void OnDisconnectOrTimeout(ulong clientID)
162161
/// <param name="port">The port of the host to connect to. </param>
163162
public void StartClient(string ipaddress, int port)
164163
{
165-
m_OnlineMode = OnlineMode.IpHost;
164+
m_Portal.OnlineMode = OnlineMode.IpHost;
166165
var chosenTransport = NetworkManager.Singleton.gameObject.GetComponent<TransportPicker>().IpHostTransport;
167166
NetworkManager.Singleton.NetworkConfig.NetworkTransport = chosenTransport;
168167

@@ -185,7 +184,7 @@ public void StartClient(string ipaddress, int port)
185184

186185
public void StartClientUnityRelayModeAsync(string joinCode, Action<string> onFailure)
187186
{
188-
m_OnlineMode = OnlineMode.UnityRelay;
187+
m_Portal.OnlineMode = OnlineMode.UnityRelay;
189188
m_JoinCode = joinCode;
190189
var utp = NetworkManager.Singleton.gameObject.GetComponent<TransportPicker>().UnityRelayTransport;
191190
NetworkManager.Singleton.NetworkConfig.NetworkTransport = utp;
@@ -197,8 +196,7 @@ public void StartClientUnityRelayModeAsync(string joinCode, Action<string> onFai
197196

198197
async void ConnectClient(Action<string> onFailure)
199198
{
200-
string playerId;
201-
if (m_OnlineMode == OnlineMode.UnityRelay)
199+
if (m_Portal.OnlineMode == OnlineMode.UnityRelay)
202200
{
203201
try
204202
{
@@ -216,16 +214,11 @@ async void ConnectClient(Action<string> onFailure)
216214
return;//not re-throwing, but still not allowing to connect
217215
}
218216

219-
playerId = AuthenticationService.Instance.PlayerId;
220-
}
221-
else
222-
{
223-
playerId = ClientPrefs.GetGuid() + ProfileManager.Profile;
224217
}
225218

226219
var payload = JsonUtility.ToJson(new ConnectionPayload()
227220
{
228-
playerId = playerId,
221+
playerId = m_Portal.GetPlayerId(),
229222
clientScene = SceneManager.GetActiveScene().buildIndex,
230223
playerName = m_Portal.PlayerName
231224
});

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/GameNetPortal.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Unity.Multiplayer.Samples.BossRoom.Shared.Net.UnityServices.Lobbies;
66
using Unity.Netcode;
77
using Unity.Netcode.Transports.UNET;
8+
using Unity.Services.Authentication;
89
using UnityEngine;
910
using UnityEngine.SceneManagement;
1011

@@ -87,6 +88,8 @@ public class GameNetPortal : MonoBehaviour
8788
private LocalLobby m_LocalLobby;
8889
private LobbyServiceFacade m_LobbyServiceFacade;
8990

91+
public OnlineMode OnlineMode { get; set; }
92+
9093
[Inject]
9194
private void InjectDependencies(LocalLobby localLobby, LobbyServiceFacade lobbyServiceFacade)
9295
{
@@ -166,6 +169,7 @@ private void OnNetworkReady()
166169
/// <param name="port">The port to connect to. </param>
167170
public void StartHost(string ipaddress, int port)
168171
{
172+
OnlineMode = OnlineMode.IpHost;
169173
var chosenTransport = NetworkManager.Singleton.gameObject.GetComponent<TransportPicker>().IpHostTransport;
170174
NetworkManager.Singleton.NetworkConfig.NetworkTransport = chosenTransport;
171175

@@ -188,6 +192,7 @@ public void StartHost(string ipaddress, int port)
188192

189193
public async void StartUnityRelayHost()
190194
{
195+
OnlineMode = OnlineMode.UnityRelay;
191196
var chosenTransport = NetworkManager.Singleton.gameObject.GetComponent<TransportPicker>().UnityRelayTransport;
192197
NetworkManager.Singleton.NetworkConfig.NetworkTransport = chosenTransport;
193198

@@ -245,5 +250,19 @@ public void RequestDisconnect()
245250
SessionManager<SessionPlayerData>.Instance.OnUserDisconnectRequest();
246251
NetManager.Shutdown();
247252
}
253+
254+
public string GetPlayerId()
255+
{
256+
if (OnlineMode == OnlineMode.IpHost)
257+
{
258+
return ClientPrefs.GetGuid() + ProfileManager.Profile;
259+
}
260+
if (OnlineMode == OnlineMode.UnityRelay)
261+
{
262+
return AuthenticationService.Instance.PlayerId;
263+
}
264+
Debug.LogError($"OnlineMode not set to a valid value: {OnlineMode}");
265+
return "";
266+
}
248267
}
249268
}

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/ServerGameNetPortal.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ private void ApprovalCheck(byte[] connectionData, ulong clientId, NetworkManager
147147
// Approval check happens for Host too, but obviously we want it to be approved
148148
if (clientId == NetworkManager.Singleton.LocalClientId)
149149
{
150-
SessionManager<SessionPlayerData>.Instance.SetupConnectingPlayerSessionData(clientId, AuthenticationService.Instance.PlayerId,
150+
SessionManager<SessionPlayerData>.Instance.SetupConnectingPlayerSessionData(clientId, m_Portal.GetPlayerId(),
151151
new SessionPlayerData(clientId, m_Portal.PlayerName, m_Portal.AvatarRegistry.GetRandomAvatar().Guid.ToNetworkGuid(), 0, true));
152152

153153
connectionApprovedCallback(true, null, true, null, null);

0 commit comments

Comments
 (0)