c# - 函数 "OnApplicationPause"在应用程序启动时起作用。安卓,unity3d

标签 c# android unity3d

当我在游戏编辑器或手机上启动我的游戏时,它会出现 2-3 秒的故障并调用函数 OnApplicationPause。但是当我在编辑器中关闭应用程序/暂停时它不会调用。这对我的项目不利,那么如何解决呢?有功能代码:

void OnApplicationPause()
{
    DateTime time = DateTime.Now;
    SaveVariablesInClass();
    PlayerPrefs.SetString("SV", JsonUtility.ToJson(save)); //saves special class
}

void SaveVariablesInClass()
{
    save.Bananas = bananas;
    save.GoldBananas = goldBananas;

    save.TwoBananasSpawnChance = twoBananasSpawnChance;
    save.HigherBananaLevelChance = higherBananaLevelChance;
    save.SimpleBananaStormChance = simpleBananaStormChance;

    save.GoldBananaChance = goldBananaChance;
    save.TwoGoldBananaChance = twoGoldBananaChance;

    save.offlineEfficiency = offlineEfficiency;
    save.offlineProductionTime = offlineProductionTime;

    save.goldCoefficient = goldCoefficient;

    save.BonusLevels = bonusLevels;
    save.GoldBonusLevels = goldBonusLevels;
    save.SimpleBonusLevelPrices = simpleBonusLevelPrices;
    save.GoldBonusLevelPrices = goldBonusLevelPrices;
    save.simpleMaxLevels = simpleMaxLevels;
    save.goldMaxLevels = goldMaxLevels;

    save.time = time.ToString();

    save.CurrentSimpleBonus1 = currentSimpleBonus1;
    save.LaunchedGame = launchedGame;
}

最佳答案

您在方法中缺少 bool 参数。它应该是 OnApplicationPause(bool pauseStatus)。在 Awake 之后,每个 GameObject 都会调用 OnApplicationPause。所以你的代码应该是:

void OnApplicationPause(bool pauseStatus)
{
    if (pauseStatus)
    {
       DateTime time = DateTime.Now;
       SaveVariablesInClass();
       PlayerPrefs.SetString("SV", JsonUtility.ToJson(save)); //saves special class
    }
}

您在评论中显示的延迟是由渲染而非脚本引起的。

关于c# - 函数 "OnApplicationPause"在应用程序启动时起作用。安卓,unity3d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56775185/

相关文章:

c# - 编译时基于模型的系统设计

c# - 是什么导致 FileSystemWatcher 对象过时?

java - SetTestProviderLocation 错误...尽管所有参数都未设置位置?

android - 如何使用 google-play-purchase-validator 验证购买 express 服务器

c# - key 不存在错误

c# - List<List<>>.Contains() 不工作

c# - 没有await的using语句中的async,这安全吗?

java - 将 Android 应用程序连接到网络服务器的最原生方法是什么?

java - Android 注释 : Classes can not be resolved when from different package on clean build

java - 为什么Unity3d找不到Java for Android SDK