Unity:尽管 Application.runInBackground 为 false,但应用程序仍在后台运行

问题描述

我目前正在开发一些 Unity 项目(这是我的第一个项目,我不熟悉 Unity),困扰我的是当我最小化 Unity 编辑器窗口时,虽然我有 Application.runInBackground == false所以应用程序应该在后台暂停,但事实并非如此!当实际代码继续执行时,只有 UI 被冻结并且音乐停止。所以,我基本上想知道这是一般行为还是仅当您在编辑器中运行以允许调试和发布版本代码执行停止时才会发生这种情况?

解决方法

您是否尝试在编辑器中更改它?转到编辑 -> 项目设置 -> 播放器。检查器窗格现在将更改以显示播放器设置。查找显示“在后台运行”的选项并取消选中它。据我所知,Application.runInBackground == false 更多的是暂停它而不是停止脚本运行。如果您的项目适用于移动设备(或者可能只是添加它,它可能会有所帮助),请尝试:

Android 和 IOS 忽略 RuninBackgorund 如何查看 here

在 Android 后台运行的唯一有效方法是通过服务。您可以使用 OnApplicationPause 方法在游戏暂停/取消暂停时获得通知。

public void OnApplicationPause(bool paused) {
if(paused) {
// Game is paused,stop service notifications.
} else {
// Game is unpaused,start service to get notifications
}

Here 你有一个关于 android 和 unity 之间通信的很好的教程