This commit is contained in:
2026-06-28 16:48:18 +08:00
parent 20d9544dc7
commit ec27005655
8 changed files with 91 additions and 20 deletions
@@ -229,4 +229,19 @@ public class GameManager : MonoSingleton<GameManager>
#endif
}
public void Logout(Action onDone = null)
{
// 关闭所有 WebSocket 连接
WebSocketManager.Instance.CloseAll();
// 清空用户数据
user = null;
// 关闭所有 UI
UIManager.Instance.CloseAll();
// 切换到登录界面
UIManager.Instance.ShowAsync(UIPanel.LoginPanel, null, (panel) =>
{
onDone?.Invoke();
});
}
}
@@ -219,6 +219,17 @@ namespace Assets.MyGame.Scripts.Net
}
}
/// <summary>
/// 关闭所有 socket
/// </summary>
public void CloseAll()
{
foreach (var type in new List<SocketType>(sockets.Keys))
{
Close(type);
}
}
/// <summary>
/// 自动重连
/// </summary>
@@ -94,20 +94,23 @@ namespace Assets.MyGame.Scripts.Net
default:
break;
}
UIManager.Instance.ShowAsync(uIPanel, UIPanel.HomeMainPanel, msg);
// 卸载所有已加载的游戏地图场景
string[] gameScenes = { "FLZY", "YYSC", "XJMH", "HHWK" };
foreach (var sn in gameScenes)
if (UIManager.Instance.Get<GameMainPanel_Base>(uIPanel)==null)
{
var s = SceneManager.GetSceneByName(sn);
if (s.IsValid() && s.isLoaded)
SceneManager.UnloadSceneAsync(sn);
}
SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
UIManager.Instance.ShowAsync(uIPanel, UIPanel.HomeMainPanel, msg);
// 卸载所有已加载的游戏地图场景
string[] gameScenes = { "FLZY", "YYSC", "XJMH", "HHWK" };
foreach (var sn in gameScenes)
{
var s = SceneManager.GetSceneByName(sn);
if (s.IsValid() && s.isLoaded)
SceneManager.UnloadSceneAsync(sn);
}
SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
UIManager.Instance.Close(UIPanel.HomeMainPanel);
WebSocketManager.Instance.isGame = true;
UIManager.Instance.Close(UIPanel.HomeMainPanel);
WebSocketManager.Instance.isGame = true;
}
}
/// <summary>