c# - 功能“OnApplicationPause”在应用程序启动时起作用。安卓,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)
。OnApplicationPause 在 Awake 之后在每个 GameObject 上调用。所以你的代码应该是:
void OnApplicationPause(bool pauseStatus)
{
if (pauseStatus)
{
DateTime time = DateTime.Now;
SaveVariablesInClass();
PlayerPrefs.SetString("SV", JsonUtility.ToJson(save)); //saves special class
}
}
您在评论中显示的延迟是由渲染而不是脚本引起的。
推荐阅读
- javascript - 如何将 sqlite 与 react-native 一起使用?
- google-analytics-api - Google Analytics API 响应 - “用户对此高级细分没有足够的权限”,但他们有
- python - 合并在熊猫中返回空数据框
- haskell - 无法编译 xmonad.hs 文件
- javascript - 尝试使用 JS 动态显示隐藏在样式表中的元素
- slack - 用于在工作区中安装应用程序的 Slack API
- java - 数据库类型程序中的枚举与类?
- amazon-web-services - 如何使用 Elastic Load Balancer 和 EC2/Nginx 解决 HTTPS 请求的 502 Bad Gateway 错误?
- android - 如何为 AWS EC2 上托管的 Parse 服务器获取 APP_ID 和 CLIENT_KEY
- python - 根据每个主索引的最后一个二级索引选择所有行