【问题标题】:Save game when exiting app退出应用时保存游戏
【发布时间】:2017-01-06 10:21:09
【问题描述】:

我正在使用 Unity C# 制作游戏。我为游戏编写了保存本地和保存云的代码。我按下按钮退出游戏保存然后退出。

但是我在这里保存的游戏有问题。当有人或玩家按下移动设备上的主页按钮时,游戏将退出并在后台运行。

如果玩家重启设备,后台运行的游戏将不会保存到本地或云端。这就是问题所在。

那么当在移动设备上按下主页按钮时,Unity 会做什么?是暂停应用程序/游戏还是什么? 如果玩家按下home键,团结起来能做什么?

如果它暂停应用程序/游戏,我们可以在玩家按下主页按钮时首先检测到它,我们可以保存游戏吗? (我的意思是在按下主页按钮后运行代码)

或者根据您的经验,如果玩家按下主页按钮会做什么?这是为了让玩家不会丢失游戏数据。

请提供详细信息以便我找到解决方案。

继续游戏的任何帮助都会令人惊叹:)

谢谢

丹尼斯

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    因此,当在设备移动设备上按下主页按钮时,团结一致 做吗?

    Unity 无法控制这一点。操作系统可以。您没有提及哪个操作系统(Android 或 iOS),但您可以研究按下每个操作系统的主页按钮时会发生什么。

    我可以告诉您的是,该应用在 Android 上暂停了一段时间。有时,资产会被 Android 卸载。这取决于许多因素,例如应用暂停的时间、打开的应用数量以及设备上的可用内存。

    你不能依赖操作系统来处理这个问题。你必须自己处理。

    如果它暂停了应用程序/游戏,我们可以先检测到它吗? 玩家按下主页按钮我们可以保存游戏吗?

    是和否。

    您应该检测何时按下主页按钮以执行某项操作。但是,您应该检测游戏何时暂停和恢复。

    这就是OnApplicationPause 函数的用途。另一个类似的功能是OnApplicationFocus,但OnApplicationPause更适合这个。

    当按下 Home 按钮时调用 OnApplicationPause( bool pauseStatus ) 时,pauseStatus 参数为 true。重新打开应用时,pauseStatus 参数为false

    这是为了让玩家不会丢失游戏数据

    saveload 的数据取决于 pauseStatus 值。

    这里是做什么:

    void OnApplicationPause(bool pauseStatus)
    {
        if (pauseStatus)
        {
            Debug.Log("Paused");
            //Save Player Settings
            //https://stackoverflow.com/q/40078490/3785314
        }
        else
        {
            Debug.Log("resumed");
            //Load Player Settings
            //https://stackoverflow.com/q/40078490/3785314
        }
    }
    

    【讨论】:

    • 很高兴看到有人贴出答案 :) 这一定是解决问题了。
    • 如果有问题请告诉我。
    • 嗨@Programmer你能帮我弄清楚这个帖子stackoverflow.com/q/41787461/6786634
    • 我之前没有使用过 gamesparks,但 here 是他们的 Unity 教程。
    • OnApplicationPause() 不安全。添加自动保存功能,以保存计时器和/或关键事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2020-06-17
    相关资源
    最近更新 更多