处理退出请求

退出

Most platforms have the option to request the application to quit. On desktops, this is usually done with the "x" icon on the window title bar. On Android, the back button is used to quit when on the main screen (and to go back otherwise).

处理通知

在桌面平台上, MainLoop 有一个特殊的 MainLoop.NOTIFICATION_WM_QUIT_REQUEST 通知,当请求退出时,会向所有节点发送。

在Android系统中,会发送 MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST 代替。如果在项目设置中勾选了 **Application > Config > Quit On Go Back**(默认),按Back按钮将退出应用程序。

注解

MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST 在iOS上不支持,因为iOS设备没有实体的Back按钮。

Handling the notification is done as follows (on any node):

func _notification(what):
    if what == MainLoop.NOTIFICATION_WM_QUIT_REQUEST:
        get_tree().quit() # default behavior
public override void _Notification(int what)
{
    if (what == MainLoop.NotificationWmQuitRequest)
        GetTree().Quit(); // default behavior
}

在开发移动应用程序时,除非用户在主屏幕上,否则不需要退出,因此处理方式有变化。

值得注意的是,默认情况下,在请求退出时,Godot应用程序具有退出的内置行为,可以更改为:

get_tree().set_auto_accept_quit(false)
GetTree().SetAutoAcceptQuit(false);