disonncet grace improved

This commit is contained in:
2026-05-17 20:11:42 +05:30
parent aa924c71dc
commit 87301a228f
8 changed files with 54 additions and 207 deletions
+1 -17
View File
@@ -808,23 +808,7 @@ public class GameManager : NetworkBehaviour
// LevelLoadManager.LoadLevel("MainMenu");
}
public void Leave(string levelName = "MainMenu"){
NetManager.MarkIntentionalClientDisconnect();
StopClient();
StartCoroutine(CoroutineWaitTillDisconnection(levelName));
}
IEnumerator CoroutineWaitTillDisconnection(string levelName){
LevelLoadManager.instance.Show(); //Load the UI until the level is loaded
while(NetworkClient.isConnected){
yield return null;
}
yield return new WaitForSeconds(1f); //Just to make sure
LevelLoadManager.LoadLevel(levelName);
}
public void StopClient(){
+2 -2
View File
@@ -129,7 +129,7 @@ public class GameOverCanvas : MonoBehaviour
void OnBtnLeaveGameClicked(){
GameManager.instance.Leave();
LevelLoadManager.instance.Leave();
}
void CollectOriginalPositionsAndScales(){
@@ -333,7 +333,7 @@ public class GameOverCanvas : MonoBehaviour
}
GameManager.instance.Leave();
LevelLoadManager.instance.Leave();
}
+3
View File
@@ -17,9 +17,11 @@ public class NetManager : NetworkManager
static bool s_IntentionalClientDisconnect;
public static NetManager instance;
public override void Awake()
{
base.Awake();
instance = this;
Transport.active.OnClientError += OnTransportClientError;
}
@@ -279,4 +281,5 @@ public class NetManager : NetworkManager
reopenRequestInFlight = false;
}
}
+1 -1
View File
@@ -530,7 +530,7 @@ public class NetPlayer : NetworkBehaviour
Cupid.RoomPort = branch.Port;
LoginManager.SetMatchYourTeam(branch.your_team);
GameManager.instance.Leave("Game");
LevelLoadManager.instance.Leave("Game");
}
void OnRematchCancelledServer(){
@@ -4,6 +4,7 @@ using DG.Tweening;
using UnityEngine.SceneManagement;
using System.Collections;
using TMPro;
using Mirror;
public class LevelLoadManager : MonoBehaviour
{
public static LevelLoadManager instance;
@@ -181,4 +182,23 @@ public class LevelLoadManager : MonoBehaviour
p2_l10.text = $"L10 {opponentPlayer.l10_wins}-{opponentPlayer.l10_losses}";
}
public void Leave(string levelName = "MainMenu"){
NetManager.MarkIntentionalClientDisconnect();
GameManager.instance.StopClient();
StartCoroutine(CoroutineWaitTillDisconnection(levelName));
}
IEnumerator CoroutineWaitTillDisconnection(string levelName){
Show(); //Load the UI until the level is loaded
while(NetworkClient.isConnected){
yield return null;
}
yield return new WaitForSeconds(1f); //Just to make sure
LoadLevel(levelName);
}
}