godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.06k stars 21.18k forks source link

navigation_map.is_null() errors when running iOS custom export with disable_3d #96791

Open RocketRonz opened 2 months ago

RocketRonz commented 2 months ago

Tested versions

4.3.stable.mono

System information

Godot v4.3.stable.mono - macOS 14.6.1 - GLES3 (Compatibility) - Apple M2 - Apple M2 (8 Threads)

Issue description

When running an iOS app built using a custom export template with disable_3d = "yes", the following errors appear in the Xcode output window:

ERROR: Condition "navigation_map.is_null()" is true. at: _navigation_update_cell (scene/2d/tile_map_layer.cpp:1031)

One message appears for every tile added to a TileMapLayer in a 2D Godot project. Although these errors do not appear to cause any problems, a lot of output is generated for projects with a large number of levels.

Steps to reproduce

Reproducible with a minimal Godot project. No code, just a TileMapLayer scene with a number of tiles added.

Minimal reproduction project (MRP)

N/A

AThousandShips commented 2 months ago

The entire navigation module is disabled with disable_3d = Yes, so this section of code should probably be safeguarded in another way to avoid spurious errors

The simple workaround is to disable navigation for your TileMapLayer but there should be some other check here probably to ensure this doesn't error

My suggestion would be to error when the property is set and it fails to initialize navigation by checking for the dummy server, as the error is correct but the use of navigation on a build that doesn't support it isn't, so will take a look at adding some kind of warning and instructing the user to disable navigation when not supported