我正在结合 Facepunch.Steamworks 和 FacepunchTransport.
在 Unity 中尝试使用 Netcode for Gameobjects我现在想让主机在他断开连接时检测到,这样我就可以再次将主机放入 MainMenu。
对于客户端检测主机是否断开连接,我这样做:
private void OnEnable() {
NetworkManager.Singleton.OnClientDisconnectCallback += OnClientDisconnectCallback;
}
private void OnDisable() {
NetworkManager.Singleton.OnClientDisconnectCallback -= OnClientDisconnectCallback;
}
private void OnClientDisconnectCallback(ulong id) {
Debug.Log("OnClientDisconnectCallback: " + id.ToString());
if (IsClient) {
if (id == 0) { // 0 = host?!
LobbySaver.instance.currentLobby?.Leave();
LobbySaver.instance.currentLobby = null;
SceneManager.LoadScene("MainMenu");
}
}
}
当然,OnClientDisconnectCallback 不会为主机本身触发,因为我看不到“OnClientDisconnectCallback”Debug.Log。
所以我的问题是:
提前感谢您的帮助!