不解

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

}

}


同步自网易博客 (查看原文)

评论