Change NavigationMesh to also parse collision shapes by default #95013
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.
Changes
NavigationMesh
parse geometry types to include collision shapes as well by default.The NavigationMesh default properties are set to only parse visual meshes but not collision shapes. New users regular stumble and fumble with this and for older users it is an annoyance that the properties need to always be changed when creating a new NavigationMesh.
The properties need to be changed because parsing visual meshes is objectively bad for performance. Recommending users to use only collision shapes for the baking when the defaults ignore those shapes is always very awkward. This is especially irritating for people that switch to Godot from other engines as in basically all other game engines the default is set to parse collision shapes (and often only collision shapes) so they do not even expect a setting for this.
For legacy and compatibility reasons (as Godot does not store defaults) this is hard to fully change now without breaking a lot of older projects so this PR at least changes that by default both are parsed. This already is the case with the newer parsing on the 2D NavigationPolygon.