Unity Fishnet OnStopClient - MissingReferenceException 只是有时?

Unity Fishnet OnStopClient - MissingReferenceException only sometimes?

提问人:Cody 提问时间:3/26/2023 更新时间:3/27/2023 访问量:78

问:

好的,所以我正在使用渔网 OnStartClient 和 OnStopClient 方法。 当我启动客户端时,我找到一个游戏对象,当我停止它时,我试图访问在“开始”上找到的游戏对象。

所以我测试了一下。当我停止和启动客户端 3 次时,它会在第三次(每次)工作。前两次尝试:

  • 我收到“MissingReferenceException:'GameObject'类型的对象已被销毁,但您仍在尝试访问它。 您的脚本应该检查它是否为 null,或者您不应该销毁该对象。

对我来说,为什么它在第三次运行中起作用而不是在前两次运行中不起作用是完全没有意义的。有人对此有任何意见吗?

public override void OnStopClient()
    {
        base.OnStopClient();
        

            
        // This is what i'm getting nullReferenceException on but only sometimes.
        // I find thee invPanel in the onclient start using
        // invPanel = GameObject.FindGameObjectWithTag("InventoryPanel");
        if (!invPanel.activeSelf)
        {
            invPanel.SetActive(true);
        }

        
        
    }

在研究这个问题的过程中,我已经尝试了我能想到的一切,但在找到与我的问题相关的任何事情方面都不太成功。

我希望它要么总是找到对象,要么总是产生空引用异常。每次在第三次尝试时都完全工作,但在前两次尝试中却没有,这是没有意义的。

unity-game-engine 网络编程 nullreferenceexception 游戏对象

评论


答:

0赞 Cody 3/27/2023 #1

所以仍然不确定问题是什么,但我相信我修复了它,但只是使用 OnApplicationQuit 而不是 OnStopClient。

评论

0赞 Hamed 4/2/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。