Unity3d监听手机暂停与退出事件


做移动互联网类型的开放,很多情况得考虑移动设备的暂停与退出时,做某些数据操作或UI。

1,退出事件,Unity3d,InPut就包含了:

Input.GetKey(KeyCode.Escape) 、 Input.GetKey(KeyCode.Home) 、Input.GetKey(KeyCode.Menu);

2,暂停事件,Unity3d的

OnApplicationFocus、OnApplicationPause两者结合起来

如:

[AddComponentMenu("WuKk/Public/Game Pause Quit")]

publicclass GamePauseQuit : MonoBehaviour {

public  delegate  void GameQuitDelegate();

public  static  event GameQuitDelegate gameQuitDelegate;

 

public  delegate  void GamePauseDelegate();

public  static  event GamePauseDelegate gamePauseDelegate;

bool isPause=false;

void OnEnable(){

isPause=false;

}

void  Update(){

    if (Input.GetKey(KeyCode.Escape) || Input.GetKey(KeyCode.Home) || Input.GetKey(KeyCode.Menu))

{

  if(gameQuitDelegate!=null)

gameQuitDelegate();

else 

  Application.Quit();

}

void OnApplicationFocus(){

#if UNITY_IPHONE || UNITY_ANDROID

  isPause=true;

#endif

}

 

void OnApplicationFocus(){

#if UNITY_IPHONE || UNITY_ANDROID

if(isPause)

{

isPause=false;

if(gamePauseDelegate!=null)

gamePauseDelegate();

}

#endif

}

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM