在游戏结束时存储数据 Unity

Store data at game closing time Unity

我想在调用 Application.Quit() 方法时准确存储数据。 基本上我想要一种在应用程序生命周期中被调用一次的回调方法,就在应用程序被设备的操作系统杀死时。

使用 iOS,我设法使用以下代码行:

void OnApplicationQuit()
{

    //if (pauseStatus)
    //{
    DataStorage.StoreLastOpenedDay(DateTime.Now.Day);
    DataStorage.StoreLastOpenedMonth(DateTime.Now.Month);
    DataStorage.StoreLastOpenedYear(DateTime.Now.Year);
    //}
}

但我得到的信息是,在 Android 中,OnApplicationQuit 方法没有被 运行 activity 调用。

那么 Android 中存在什么替代方案来实现与 iOS 相同的东西?我不能使用 OnApplicationPause 方法,因为当您的应用程序为 运行 for ex 时发生任何外部进程时,它会被多次调用。 phone 调用、应用内购买相关弹出窗口等... 我希望代码在应用程序被杀死时只执行一次。

请分享您对此的建议。

在 Android 上,Application.Quit() 调用 OnApplicationQuit(),但仅从 Unity 运行时内部调用。

这意味着如果您让应用程序在后台暂停,并且 OS 决定终止它,则根本不会调用 OnApplicationQuit()

基本上,为了确保您的应用保存数据,您需要兼顾 OnApplicationPaused()OnApplicationFocus(),但这意味着您将无法准确执行保存应用程序的每个生命周期一次。