Unity3d OnApplicationPause與OnApplicationFocus

來源:互聯網
上載者:User

標籤: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

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.