Search Issue Tracker

Fixed

Fixed in 7000.0.0a1, future release

Votes

0

Found in

2020.3.47f1

2021.3.22f1

2022.2.13f1

2023.1.0b10

2023.2.0a9

2023.3.0a3

Issue ID

UUM-32027

Regression

No

"MonoBehaviour.OnApplicationQuit" is still called when quitting is canceled by “Application.wantsToQuit“ returning false

Scripting

-

Reproduction steps:
1. Open the “QuitStripped” project
2. Open the “SampleScene” scene
3. Build And Run
4. Press “Make Application.wantsToQuit return false”
5. Press “Call Application.Quit()”
6. Observe the top left or Player.log

Expected result: “MonoBehaviour.OnApplicationQuit invoked” is not logged
Actual result: “MonoBehaviour.OnApplicationQuit invoked” is logged

Reproduced in: 2020.3.0f1, 2020.3.47f1, 2021.3.22f1, 2022.2.13f1, 2023.1.0b10, 2023.2.0a9

Reproduced using: Windows 11, macOS 13.2.1 (Intel), Ubuntu 20.04 (by the reporter), ArchLinux (by the reporter)

Workarounds: 
1. “Application.quitting” can be used instead of “MonoBehaviour.OnApplicationQuit“
2. "Application.CancelQuit" can be used inside "MonoBehaviour.OnApplicationQuit"

Notes:
1. Related old fixed bug: [https://issuetracker.unity3d.com/product/unity/issues/guid/1261125/]
2. The said bug fix only made “Application.wantsToQuit“ be invoked before “MonoBehaviour.OnApplicationQuit” but “MonoBehaviour.OnApplicationQuit” remained always being called
3. Cannot test in Play Mode because most of quitting API does not work in Editor
4. If this is by design, it should be specified in the "MonoBehaviour.OnApplicationQuit" documentation

  1. Resolution Note (fix version future release):

    Fixed issues with events and notifications during player quit

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.