做移动互联网类型的开放,很多情况得考虑移动设备的暂停与退出时,做某些数据操作或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
}
}