1
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user