小编Roy*_*ves的帖子

如何在 Unity Netcode 中停止游戏对象的客户端/主机?

我设法使用 Unity Netcode 实现某种多人游戏,我知道这是非常新的,但我遇到了一个相当大的问题。我似乎无法断开与服务器实例的连接。这会导致我加载游戏场景并生成 NetworkManager 实例的问题。然后我返回主菜单场景并再次加载游戏场景,现在有 2 个 NetworkManager 实例,这显然会导致错误。

我在文档中读到您可以使用它:

public void Disconnect()
{
    if (IsHost) 
    {
        NetworkManager.Singleton.StopHost();
    }
    else if (IsClient) 
    {
        NetworkManager.Singleton.StopClient();
    }
    else if (IsServer) 
    {
        NetworkManager.Singleton.StopServer();
    }
    
    UnityEngine.SceneManagement.SceneManager.LoadScene("MainMenu");
}
Run Code Online (Sandbox Code Playgroud)

然而,所有这些停止函数似乎在单例下根本不存在。我错过了图书馆或其他什么吗?现在我使用的解决方法是禁用“不破坏”,然后 NetworkManager 在切换场景后被破坏,但是如果我想在切换场景后保留它怎么办?有没有办法控制服务器/客户端何时停止?我假设这是一个错误,但我只是想确定一下。

c# multiplayer unity-game-engine

5
推荐指数
1
解决办法
8105
查看次数

标签 统计

c# ×1

multiplayer ×1

unity-game-engine ×1