Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #19
What is the problem?
When closing a Bevy app, the window may be closed but the application is still running. Some
bevy_flycam
systems try to access the window, and in the process unwrap anOption<&mut Window>
. If thatOption
isNone
, the application crashes.What is the solution?
This PR changes those
unwrap()
s to matching patterns. Now, when a window isn't found, a warning is given instead.What is the alternative?
This is still proper error handling, but gives unnecessary warnings when closing. There may be a way to use run criteria to stop the systems when
AppExit
events are sent, but I was unable to get this to work (presumably because of event delays).It would probably be better if Bevy provided an(Now that I think about it, explicit system ordering may be the solution)AppState
resource from which the global state of the application could be checked and then use that for a run criteria.