Skip to content

Commit 2accfe4

Browse files
committed
fixing user-requested shutdown
1 parent 6a06365 commit 2accfe4

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

Assets/Scripts/ApplicationLifecycle/ApplicationController.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,7 @@ private void LeaveSession(QuitGameSessionMessage msg)
142142
if (msg.UserRequested)
143143
{
144144
// first disconnect then return to menu
145-
var gameNetPortal = GameNetPortal.Instance;
146-
if (gameNetPortal != null)
147-
{
148-
gameNetPortal.RequestDisconnect();
149-
}
145+
m_ConnectionManager.RequestShutdown();
150146
}
151147
SceneLoaderWrapper.Instance.LoadScene("MainMenu", useNetworkSceneManager: false);
152148
}

Assets/Scripts/Gameplay/ConnectionManagement/ConnectionManager.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ public bool StartHostIp(string playerName, string ipaddress, int port)
155155

156156
public void RequestShutdown()
157157
{
158+
DisconnectReason.SetDisconnectReason(ConnectStatus.UserRequestedDisconnect);
158159
m_Logics[m_CurrentState].OnUserRequestedShutdown();
159160
}
160161

Assets/Scripts/Gameplay/ConnectionManagement/ConnectionState/ConnectedConnectionState.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public override void OnClientDisconnect(ulong clientId)
3535
case ConnectStatus.UserRequestedDisconnect:
3636
case ConnectStatus.HostEndedSession:
3737
m_QuitGameSessionPublisher.Publish(new QuitGameSessionMessage() {UserRequested = false}); // go through the normal leave flow
38+
m_ConnectionManager.ChangeState(ConnectionStateType.Offline);
3839
break;
3940
default:
4041
// try reconnecting
@@ -46,5 +47,11 @@ public override void OnClientDisconnect(ulong clientId)
4647
m_ConnectionManager.DisconnectReason.Clear();
4748
}
4849
}
50+
51+
public override void OnUserRequestedShutdown()
52+
{
53+
m_ConnectionManager.NetworkManager.Shutdown();
54+
m_ConnectionManager.ChangeState(ConnectionStateType.Offline);
55+
}
4956
}
5057
}

0 commit comments

Comments
 (0)