標籤:android class blog c http a
地址:http://www.cnblogs.com/kuangwu/archive/2013/06/14/3135546.html
在手機遊戲當中,會碰到“強制暫停”,如:鎖屏、接電話或簡訊之類的。如果“強制暫停”時間過長,網路遊戲有時得重新登入等事件。
而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
}