C# 统一中的超控标准关闭按钮
我想在用户单击窗口的关闭按钮时创建一个“确定吗?”系统。有可能在Unity中捕捉到关闭事件吗?C# 统一中的超控标准关闭按钮,c#,forms,unity3d,window,C#,Forms,Unity3d,Window,我想在用户单击窗口的关闭按钮时创建一个“确定吗?”系统。有可能在Unity中捕捉到关闭事件吗? 谢谢 编辑: 我尝试在用户单击(X)按钮时打开一个对话框。它可以工作,但看起来它会在每一帧创建一个新对话框 看一看,这个问题需要更新答案,因为它已被弃用,并且不会阻止应用程序关闭 要完成此退出确认方法,最好使用: 从文档中: 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();
}
}