Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一中的超控标准关闭按钮_C#_Forms_Unity3d_Window - Fatal编程技术网

C# 统一中的超控标准关闭按钮

C# 统一中的超控标准关闭按钮,c#,forms,unity3d,window,C#,Forms,Unity3d,Window,我想在用户单击窗口的关闭按钮时创建一个“确定吗?”系统。有可能在Unity中捕捉到关闭事件吗? 谢谢 编辑: 我尝试在用户单击(X)按钮时打开一个对话框。它可以工作,但看起来它会在每一帧创建一个新对话框 看一看,这个问题需要更新答案,因为它已被弃用,并且不会阻止应用程序关闭 要完成此退出确认方法,最好使用: 从文档中: Unity在播放器应用程序想要退出时引发此事件 将事件处理程序添加到此事件以接收应用程序正试图退出的通知 引发此事件时,退出过程已启动,但可以取消。这意味着玩家不一定会退出。对于

我想在用户单击窗口的关闭按钮时创建一个“确定吗?”系统。有可能在Unity中捕捉到关闭事件吗?
谢谢

编辑:


我尝试在用户单击(X)按钮时打开一个对话框。它可以工作,但看起来它会在每一帧创建一个新对话框

看一看,这个问题需要更新答案,因为它已被弃用,并且不会阻止应用程序关闭

要完成此退出确认方法,最好使用:

从文档中:

Unity在播放器应用程序想要退出时引发此事件

将事件处理程序添加到此事件以接收应用程序正试图退出的通知

引发此事件时,退出过程已启动,但可以取消。这意味着玩家不一定会退出。对于保证退出事件,请查看Application.quitting

返回true,退出过程将继续。返回false,退出过程将取消。


例如:



注意:在编辑器中退出播放模式时,忽略此事件(Application.wantsToQuit)的返回值重要提示:退货对iPhone没有影响。应用程序无法阻止在iPhone操作系统下终止。

谢谢。我在错误的方向上寻找答案。无需覆盖standart按钮。团结已经做到了:)
void OnApplicationQuit()
{
    DialogResult result = MessageBox.Show(
        "Are you sure you want to cancel ?",
        "Question",
        MessageBoxButtons.YesNo,
        MessageBoxIcon.Question);
    if (result == DialogResult.Yes)
    {
        Application.Quit();
    }
}
// When the application starts, append a method
// that will run when the user attempts to exit
[RuntimeInitializeOnLoadMethod]
static void RunOnStart() { 
    Application.wantsToQuit += WantsToQuit;
}

public static bool quitConfirmation = false;

static bool WantsToQuit() {
    if(quitConfirmation)  {
        return true;
    } else {
         RequestQuitConfirmation();
    }
    return false;
}

static void RequestQuitConfirmation() {
    DialogResult result = MessageBox.Show(
        "Are you sure you want to cancel ?",
        "Question",
        MessageBoxButtons.YesNo,
        MessageBoxIcon.Question);
    if (result == DialogResult.Yes)
    {
        quitConfirmation = true;
        Application.Quit();
    }
}