最近刚搞定微信支付的功能,然后支付完返回游戏又发生闪退,经过一些调试,最后确认是横竖屏切换导致的,游戏从竖屏切换回横屏的时候设置了一个错误的分辨率,特别大的那种,然后内存溢出就崩溃了,目前还不知道为什么会设置那个参数,总之微信支付页面是竖屏的,我的游戏是横批的,如果都是竖屏就不会闪退,于是办法就是在跳转支付之前把游戏的分辨率从横屏的19201080改成10801920,然后再进入微信支付页面,支付完成再回到游戏后改成原来的分辨率,这样就不会有那个问题了。
以下是Unity中C#关键代码
支付前
//设置为竖屏分辨率
Screen.SetResolution(1080, 1920, true);
支付结束 这个生命周期就是游戏恢复前台回被调用的其中一个
private void OnApplicationFocus(bool focus)
{
if (focus == false)
{
//支付完成 返回界面 恢复为横批分辨率
Screen.SetResolution(1920, 1080, true);
}
}
这个问题困扰了我一整天,踩完这个坑,我下一个坑又来了,拜拜。