Unity Android游戏后台重启后

本文关键字:重启 后台 游戏 Android Unity | 更新日期: 2023-09-27 18:14:08

我用Unity制作了一款Android游戏。我的问题是,当我按下home键,然后从任务栏菜单或点击图标重新启动游戏时,我的游戏是从Scene 0重新启动,而不是从上次状态重新启动。这种情况并不总是发生。有时会,有时不会。这是我的设备(三星Galaxy S7)的问题,还是我可以通过代码纠正?

Unity Android游戏后台重启后

这在每个Os上的处理方式不同。对于Android,有很多东西决定应用程序的状态是否应该在内存中。这包括内存大小,Android版本,有多少应用程序在后台运行。

因此,实现退出时保存机制是您的责任。这可以通过OnApplicationPauseOnApplicationFocus函数来完成。

下面的代码是你应该做的一个例子。你需要修改它,添加更多的信息,如球员信息,得分,比赛,球员位置。将它们保存为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);
    }
}