我想创建一个“你确定吗?”用户点击窗口关闭按钮时的系统。是否可以在Unity中捕获FormClosing事件?
感谢。
编辑:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property= "type",
visible = true
)
我试过这个用户点击(X)按钮时打开一个对话框。它工作,但看起来它每帧都创建一个新的对话框。
答案 0 :(得分:1)
答案 1 :(得分:0)
此问题需要更新的答案,因为Application.CancelQuit()已过时,MonoBehaviour.OnApplicationQuit()不会阻止应用程序关闭。
要完成此退出确认方法,最好使用Application.wantsToQuit。
从文档中
当播放器应用程序想要退出时,Unity引发此事件。
向该事件添加事件处理程序,以接收有关应用程序试图退出的通知。
引发此事件时,退出过程已开始,但可以取消。这意味着不能保证玩家退出。要确保退出事件,请查看Application.quitting。
返回true,退出过程将继续。返回false,退出过程将取消。
示例:
// 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();
}
}
注意:在编辑器中退出播放模式时,将忽略此事件的返回值(Application.wantsToQuit)。 重要提示:退货对iPhone无效。应用程序无法阻止在iPhone OS下终止。