您好,我使用Unity为Android制作了游戏。我的问题是,当我通过按主页按钮来设置应用程序,然后从任务栏菜单重新启动游戏或单击图标时,我的游戏将从场景0重新启动,而不是从上一个状态重新启动。这并不总是发生。有时它确实有时它不会。这是我的设备(Samsumg Galaxy S7)的问题还是我可以通过代码纠正的问题?
答案 0 :(得分:1)
每个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);
}
}