Unity背景下的Unity游戏重启

时间:2016-10-21 16:26:10

标签: c# android unity3d

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

1 个答案:

答案 0 :(得分:1)

每个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);
    }
}