在最小化时运行游戏(Unity)

3

当移动用户最小化游戏时,我希望能够玩游戏,因为我有一个内置的计时器。

我使用了以下代码:

Application.runInBackground = true;

但是它在安卓上无法工作。

2个回答

5

Android不允许应用程序像这样在后台运行。

相反,您应该跟踪应用程序隐藏和用户重新打开的时间之间经过了多长时间,并使用经过的时间加上先前的游戏状态来计算新状态。对于用户,这将给出游戏一直在运行的印象,而实际上并非如此。

因此,如果游戏中的某个值每秒增加5个,您应该将其增加5 * 已经过去的秒数。


谢谢。 我该如何找到最小化的游戏? 你怎么知道游戏是否打开?你知道最小化和打开游戏的代码吗? - s.m.m
使用 OnApplicationPause 和 OnApplicationFocus,您可以知道应用程序何时被隐藏和恢复。当应用程序暂停时,您还应该将当前时间持久化到存储中,以防用户完全退出应用程序,并在应用程序重新启动时检查该值。 https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnApplicationPause.html - PhonicUK

2

在Android中,您无法在后台运行应用程序,无论您是否说 Application.runInBackground = true; ,它都不会在后台运行。


你可以这样做。它被称为“服务”,但在后台运行的代码必须用Java编写,而不是Unity使用的C# Unity。 - Programmer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接