Unity3d OnApplicationPause與OnApplicationFocus 判斷遊戲暫停還是重新啟動

來源:互聯網
上載者:User

標籤:android   http   io   ar   sp   on   art   問題   log   

歡迎來到unity學習、unity培訓、unity企業培訓教育專區,這裡有很多U3D資源、U3D培訓視頻、U3D教程、U3D常見問題、U3D項目源碼,我們致力於打造業內unity3d培訓、學習第一品牌。

 

在手機遊戲當中,會碰到“強制暫停”,如:鎖屏、接電話或簡訊之類的。如果“強制暫停”時間過長,網路遊戲有時得重新登入等事件。

而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

}

 

更多精彩請點擊 http://www.gopedu.com/

Unity3d OnApplicationPause與OnApplicationFocus 判斷遊戲暫停還是重新啟動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.