Unity3d OnApplicationPause与OnApplicationFocus
2016-01-15 14:38
405 查看
在手机游戏当中,会碰到“强制暂停”,如:锁屏、接电话或短信之类的。如果“强制暂停”时间过长,网络游戏有时得重新登录等事件。
而Unity3d,Android Plugins中的UnityPlayer.UnitySendMessage,经测试在强制暂停时,OnPause、OnStop周期中UnitySendMessage无效。
重点探索OnApplicationPause和OnApplicationFocus;
OnApplicationPause,当程序暂停;
OnApplicationFocus,当程序获得或失去焦点;
经测试:
强制暂停时,先 OnApplicationPause,后 OnApplicationFocus;
重新“启动”手机时,先OnApplicationFocus,后 OnApplicationPause;
思路:
1,定义两个bool
isPause=false;
isFocus=false;
在OnEnable();初始化:
void OnEnable(){
isPause=false;
isFocus=false;
}
void OnApplicationPause(){
#if UNITY_IPHONE || UNITY_ANDROID
Debug.Log("OnApplicationPause "+isPause+"
"+isFocus);
if(!isPause)
{
// 强制暂停时,事件
pauseTime();
}
else
{
isFocus=true;
}
isPause=true;
#endif
}
void OnApplicationFocus(){
#if UNITY_IPHONE || UNITY_ANDROID
Debug.Log("OnApplicationFocus "+isPause+"
"+isFocus);
if(isFocus)
{
// “启动”手机时,事件
resumeList();
isPause=false;
isFocus=false;
}
if(isPause)
{
isFocus=true;
}
#endif
}
而Unity3d,Android Plugins中的UnityPlayer.UnitySendMessage,经测试在强制暂停时,OnPause、OnStop周期中UnitySendMessage无效。
重点探索OnApplicationPause和OnApplicationFocus;
OnApplicationPause,当程序暂停;
OnApplicationFocus,当程序获得或失去焦点;
经测试:
强制暂停时,先 OnApplicationPause,后 OnApplicationFocus;
重新“启动”手机时,先OnApplicationFocus,后 OnApplicationPause;
思路:
1,定义两个bool
isPause=false;
isFocus=false;
在OnEnable();初始化:
void OnEnable(){
isPause=false;
isFocus=false;
}
void OnApplicationPause(){
#if UNITY_IPHONE || UNITY_ANDROID
Debug.Log("OnApplicationPause "+isPause+"
"+isFocus);
if(!isPause)
{
// 强制暂停时,事件
pauseTime();
}
else
{
isFocus=true;
}
isPause=true;
#endif
}
void OnApplicationFocus(){
#if UNITY_IPHONE || UNITY_ANDROID
Debug.Log("OnApplicationFocus "+isPause+"
"+isFocus);
if(isFocus)
{
// “启动”手机时,事件
resumeList();
isPause=false;
isFocus=false;
}
if(isPause)
{
isFocus=true;
}
#endif
}
相关文章推荐
- 关于unity里色彩空间与光照小记
- unity中的MonoBehaviour.OnMouseDown()
- 使用unity进行测试驱动开发的方法
- Unity3d之NGUI制作技能冷却
- unity移动平台阴影解决方案
- Unity3d 10000 Update() calls 性能优化
- unity3d打APK包时出现的内部构建错误(笔记)
- Unity3D——单词
- XML的使用,增删改查(Unity中的)
- 如何使用vs2012单步调试uGUI(unity3d 5.3f4)
- UGUI Unity内建UI系统的认识和一些问题的解决方案
- Unity3D游戏开发技巧Camera实现效果
- Unity3D 5.3 32位安装 No Unsupported Target module loaded
- Unity GameObject.activeSelf, GameObject.activeInHierarchy,GameObject.SetActive和SetActiveRecursively
- Unity3D ParticleSystem粒子系统(3.5版
- unity3d扩展编辑器
- 在Unity中使用UGUI修改Mesh绘制几何图形
- Unity中C#单例模式使用总结
- 其实Unity界面还是非常可爱的
- 【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)