首页 > 解决方案 > 未在 Active 和 Enabled 游戏对象上调用 Unity WebGL 更新

问题描述

在 WebGL 构建中遇到一个奇怪的问题。该问题不会发生在编辑器中。我有多个游戏对象将在加载游戏几秒钟后停止调用它们的更新。

我知道对象存在,因为我可以从对象的浏览器控制台调用 gameInstance.SendMessage。我添加了一个调试方法,该方法打印对象是否处于活动状态并且它处于活动状态。它附加了脚本的组件,该组件已启用,该组件所在的游戏对象处于活动状态。我什至可以调用 SendMessage("MyObject", "Update") 它会调用一次更新方法,正确打印所有内容。

这个问题偶尔会发生一次。有时它不会在几个小时内发生,然后每隔一段时间就会发生一次。游戏没有冻结,我仍然在运行加载动画。

这听起来像是一种竞争条件,但我无法确定是什么导致 Unity 停止在活动游戏对象上调用“更新”。是否有人知道 Unity WebGL 中将停止调用 Update 的条件或错误?如果无限循环中有东西,那也会冻结加载动画吗?

虽然我不确定,因为这个错误很难重现,但这似乎只发生在 macOS 上的 webgl 构建上

目前使用 Unity 2017。

非常感谢任何帮助!

标签: c#unity3dbrowserunity-webgl

解决方案


推荐阅读