Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

終了リクエストの処理

終了

ほとんどのプラットフォームには、アプリケーションの終了を要求するオプションがあります。デスクトップでは、これは通常、ウィンドウのタイトルバーにある "x" アイコンで行われます。Androidでは、戻るボタンを使用して、メイン画面上で終了します(終了以外の場合は戻ります)。

通知の処理

On desktop and web platforms, Node receives a special NOTIFICATION_WM_CLOSE_REQUEST notification when quitting is requested from the window manager.

On Android, NOTIFICATION_WM_GO_BACK_REQUEST is sent instead. Pressing the Back button will exit the application if Application > Config > Quit On Go Back is checked in the Project Settings (which is the default).

注釈

NOTIFICATION_WM_GO_BACK_REQUEST isn't supported on iOS, as iOS devices don't have a physical Back button.

通知の処理は、(任意のノードで) 次のように行われます:

func _notification(what):
    if what == NOTIFICATION_WM_CLOSE_REQUEST:
        get_tree().quit() # default behavior

モバイルアプリを開発する場合、ユーザーがメイン画面にいる場合を除き、終了することは望ましくないため、動作を変更できます。

It is important to note that by default, Godot apps have the built-in behavior to quit when quit is requested from the window manager. This can be changed, so that the user can take care of the complete quitting procedure:

get_tree().set_auto_accept_quit(false)

Sending your own quit notification

While forcing the application to close can be done by calling SceneTree.quit, doing so will not send the NOTIFICATION_WM_CLOSE_REQUEST to the nodes in the scene tree. Quitting by calling SceneTree.quit will not allow custom actions to complete (such as saving, confirming the quit, or debugging), even if you try to delay the line that forces the quit.

Instead, if you want to notify the nodes in the scene tree about the upcoming program termination, you should send the notification yourself:

get_tree().root.propagate_notification(NOTIFICATION_WM_CLOSE_REQUEST)

Sending this notification will inform all nodes about the program termination, but will not terminate the program itself unlike in 3.X. In order to achieve the previous behavior, SceneTree.quit should be called after the notification.