【问题标题】:Unity Steamworks "InvalidOperationException: Steamworks is not initialized." after returning to offline scene in MirrorUnity Steamworks“InvalidOperationException:Steamworks 未初始化。”在Mirror中返回离线场景后
【发布时间】:2022-01-01 00:53:47
【问题描述】:

所以我只是设法将 Unity Mirror 与 FizzySteamworks 集成为传输层。 我的网络管理器在离线场景(主菜单)中初始化,一旦我点击“玩游戏”,一切正常,直到我退出(我通过调用方法 networkManager.StopHost() 来完成)。这将我移至离线场景,但每当我再次按下播放时,我都会收到以下错误:InvalidOperationException: Steamworks is not initialized.

The error

My NetworkManager settings

我是否有可能以错误的方式断开/退出游戏?我应该改为通过 steamworks (Fizzy) 断开连接吗?

为什么 SteamWorks API 只在我第一次进入主菜单时被初始化,而不是第二次?

【问题讨论】:

    标签: unity3d error-handling mirror unity3d-editor steamworks-api


    【解决方案1】:

    您不应破坏 Steam API 的管理器。 Steam API 必须在您尝试使用它之前进行初始化。您可以将管理器设置为“加载时不破坏”。 Steam API 被销毁的唯一方法是仅在整个游戏关闭时,而不仅仅是更改场景。 简而言之,它应该在游戏开始后初始化并设置为加载时不破坏。

    【讨论】:

      【解决方案2】:

      我必须启用“Persist Network Manager To Offline Scene”。 但是,这又增加了一个问题,如果客户端从前一个会话中被自动踢出(从主机退出中踢出),则客户端无法重新托管会话。
      我注意到一旦主机通过调用退出自动踢客户,SteamMatchmaking.LeaveLobby() 就不会在客户端运行。 因此,我从我的 DisconnectHost() 方法中添加了一个 ClientRpc 调用,以确保所有客户端在任何人被主机踢之前离开 Steam 大厅 .

      【讨论】:

        猜你喜欢
        • 2020-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-25
        • 2017-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多