Unity 游戏对象在构建应用时不存在

Unity GameObject doesn't exist in when building the app

提问人:DasKeksSchwert3 提问时间:4/29/2023 更新时间:4/29/2023 访问量:50

问:

发生了什么事情?

我的场景中有一个 UI 游戏对象。当我在编辑器中运行游戏时,对象显示并且一切正常,但是当我尝试构建我的应用程序时,UI没有显示。还有一个对该游戏对象的引用,但是当我尝试使用时,我得到了一个空引用异常。就像这个对象在某个时候被删除了,但事实并非如此,我在 VS 2022 中使用了“查找所有引用”快捷方式,它只显示对该对象的调用,所以我没有以任何方式设置或删除它。感觉就像当你有一个场景没有在构建设置中引用时,所以它不包含在构建中,但我已经搜索了它,似乎没有一个选项可以这样做,所以那里没有意外打开任何东西。这是有问题的 UI 菜单:uiinquestion.SetActive(true);SetActive();

UI Menu in question

问题

为什么这个对象在编辑器中不存在,但在构建中不存在?

C# unity-game-engine nullreferenceexception

评论

0赞 Bart 4/30/2023
对象是根对象,还是层次结构中的子对象?如果是后者,层次结构在运行时是否仍然存在?它的任何父对象是否标记为“EditorOnly”?您可以向此对象上的组件添加一些日志记录,以显示 Awake 或 OnDestroy 上发生的情况(如果有的话),以查看它是否存在但在某个时候被删除。
0赞 DasKeksSchwert3 4/30/2023
我已经尝试过 OnDestroy 的东西。游戏对象是 UI Canvas 的子对象。那里还有其他面板,但它们都存在于构建中。我将再次尝试 Awake,看看它是否显示任何内容。
0赞 DasKeksSchwert3 4/30/2023
等等,这很有趣:当我把 Debug.Log();在对象脚本的 Awake Method 中,它会触发该事件。当我将 Debug.Log 放入 Update methond 中时,它会触发一次,因此该对象会在某个时候被某些东西删除。
5赞 DasKeksSchwert3 4/30/2023
好吧,我只是傻。我在我的脚本中做了一个东西,删除了任何超过 2000 个“单位”的对象,所以 UI 就包括在内了。在编辑器中,窗口很小,因此对象不会被删除,但是当窗口很大时,再见...感谢您抽出宝贵时间接受采访!

答: 暂无答案