Unity coroutines在后台停止

时间:2014-01-22 15:27:32

标签: c# android ios unity3d coroutine

我的问题如下:目前我在我的Android / iOS游戏中运行了几个协同程序,但是当我将游戏发送到后台以便尝试使用手机的其他东西时,这些协同程序停止并且只有在我回到后才恢复游戏;有没有什么方法可以让游戏在后台继续运行?

3 个答案:

答案 0 :(得分:3)

Android will suspend your application by designCo-routines run in the same thread as your Updates所以在前台运行方面区分两者并不太可能。说过有办法解决这个问题。您可以构建一个plugin与android平台对话或使用OnApplicationPause并计算应用程序中传递的时间,并执行您希望在之间的时间范围内执行的任何操作。第一个要求你做building a plugin的事情。 第二个使用以下

public void OnApplicationPause(bool paused) {
    if(paused) {
       // Game is paused, remember the time
    } else {
       // Game is unpaused, calculate the time passed since the game was paused and use this time to calculate build times of your buildings or how much money the player has gained in the meantime. 
    }
}

了解更多信息,请参阅 thisthis

另请注意building a plugin requires a Pro Licence

其他共同日常资源

答案 1 :(得分:1)

您无法在后台永久运行某些内容。 OS将事件最终暂停。仅允许使用VOIP,媒体播放器或GPS。其他所有内容只会延迟一段时间。

对于iOS,您可以在info.plist中更改“应用程序无法在后台运行”

答案 2 :(得分:0)

使用 Application.runInBackground = true;

请参阅Unity文档Application.runInBackground