为什么 unity OnApplicationPause 在 android 上被调用了两次?

Why is unity OnApplicationPause called twice on android?

我有一个带有 OnApplicationPause 的简单游戏对象(主要 UI 对象),它在调试日志中打印出 Pause 状态 (true/false)。 当我 run 它在 android 上,然后按主页 Button 离开应用程序时,我看到 OnApplicationPause() 被连续调用 twice,相同 pauseStatus(真)。当我重新打开应用程序时也会发生同样的情况:OnApplicationPause 被调用两次,Pause 状态为 false。

为什么会被调用两次,我可以避免吗?我做错了什么吗?

我还尝试创建一个单独的 GameObject,其中包含相同的调试代码。那里没有出现问题 - 仅出现在我的主要 UI 对象中。

您是否 100% 确定包含 OnApplicationPause() 方法的脚本在发生暂停时不会在场景中出现两次?或出现在 DontDestroyOnLoad 游戏对象的先前场景中?

当暂停发生时,

OnApplicationPause 在每个活动 MonoBehaviour 上被调用。

所以有两个 Debug.Log 意味着两个脚本实例 运行 如果你不自己手动调用它的话。