Unity Android游戏后台重启后
本文关键字:重启 后台 游戏 Android Unity | 更新日期: 2023-09-27 18:14:08
我用Unity制作了一款Android游戏。我的问题是,当我按下home键,然后从任务栏菜单或点击图标重新启动游戏时,我的游戏是从Scene 0重新启动,而不是从上次状态重新启动。这种情况并不总是发生。有时会,有时不会。这是我的设备(三星Galaxy S7)的问题,还是我可以通过代码纠正?
这在每个Os上的处理方式不同。对于Android,有很多东西决定应用程序的状态是否应该在内存中。这包括内存大小,Android版本,有多少应用程序在后台运行。
因此,实现退出时保存机制是您的责任。这可以通过OnApplicationPause
或OnApplicationFocus
函数来完成。
下面的代码是你应该做的一个例子。你需要修改它,添加更多的信息,如球员信息,得分,比赛,球员位置。将它们保存为json文件是有意义的。
string leveName = "";
void Start()
{
//Get current scene name
leveName = SceneManager.GetActiveScene().name;
}
void OnApplicationPause(bool paused)
{
//Save scene Name if paused, otherwise load last scene
if (paused)
{
PlayerPrefs.SetString("myLastScene", leveName);
PlayerPrefs.Save();
}
else
{
//Load last scene
string lastScene = PlayerPrefs.GetString("myLastScene");
SceneManager.LoadScene(lastScene);
}
}