Unity3d程序在退出之前显示提示界面

来源:互联网 发布:java web容易找工作吗 编辑:程序博客网 时间:2024/06/08 02:58

有些程序或者游戏要在用户关闭之前提示用户是否确定关闭改程序以避免用户误操作导致程序关闭,所以我们写以下代码防止用户误操作导致关闭,在此之前你可以通过pop一个alertView提示用户是否确定关闭此程序。


下面是代码:分析下代码在程序被点击关闭的时候会调用所有脚本的 OnApplictonQuit函数 然后我们通过调用一个异步函数实现block2秒钟 判断是否是否再次确认结束程序 如果是 就让程序结束 否则 调用异步函数再次block两秒

Application.CancelQuit 取消退出static function CancelQuit () : voidDescription描述Cancels quitting the application. This is useful for showing a splash screen at the end of a game.取消退出。这可以用来在退出游戏的时候显示一个退出画面。This function only works in the player and does nothing in the web player or editor. IMPORTANT: This function has no effect on iPhone. Application can not prevent termination under iPhone OS.这个函数只工作在播发器中,在web播放器或编辑器中不做任何事。注意,这个函数在iphone中没有效果,应用程序无法防止在iPhone OS的终止。C#JavaScript// Delays quitting for 2 seconds and // 延迟2秒退出。// loads the finalsplash level during that time.// 在这段时间内加载退出画面var showSplashTimeout : float = 2.0;private var allowQuitting : boolean = false;function Awake () {// This game object needs to survive multiple levels// 需要在多个关卡中使用的游戏物体DontDestroyOnLoad (this);}function OnApplicationQuit () {// If we haven't already load up the final splash screen level// 如果我们还没有加载到最后的退出画面if ( Application.loadedLevelName .ToLower() != "finalsplash")StartCoroutine("DelayedQuit");   // Don't allow the user to exit until we got permission in // 如果我们还没有加载到最后的退出画面if (!allowQuitting)Application.CancelQuit ();}function DelayedQuit () {    Application.LoadLevel ("finalsplash");   // Wait for showSplashTimeout// 等待showSplashTimecoutyield WaitForSeconds (showSplashTimeout);   // then quit for real// 然后退出allowQuitting = true;Application.Quit ();}