Ver Fonte

Add Warning to NavigationMesh bake when source geometry is suspiciously big

Adds Warning when users try to bake a NavigationMesh with suspiciously big source geometry and small cellsizes as this baking process will likely fail or result in a NavigationMesh that will create serious pathfinding performance issues.

(cherry picked from commit 79511af7c94b447409d10194239069facef9c4a0)
smix8 há 3 anos atrás
pai
commit
689179036b
1 ficheiros alterados com 8 adições e 0 exclusões
  1. 8 0
      modules/navigation/navigation_mesh_generator.cpp

+ 8 - 0
modules/navigation/navigation_mesh_generator.cpp

@@ -463,6 +463,14 @@ void NavigationMeshGenerator::_build_recast_navigation_mesh(
 #endif
 	rcCalcGridSize(cfg.bmin, cfg.bmax, cfg.cs, &cfg.width, &cfg.height);
 
+	// ~30000000 seems to be around sweetspot where Editor baking breaks
+	if ((cfg.width * cfg.height) > 30000000) {
+		WARN_PRINT("NavigationMesh baking process will likely fail."
+				   "\nSource geometry is suspiciously big for the current Cell Size and Cell Height in the NavMesh Resource bake settings."
+				   "\nIf baking does not fail, the resulting NavigationMesh will create serious pathfinding performance issues."
+				   "\nIt is advised to increase Cell Size and/or Cell Height in the NavMesh Resource bake settings or reduce the size / scale of the source geometry.");
+	}
+
 #ifdef TOOLS_ENABLED
 	if (ep)
 		ep->step(TTR("Creating heightfield..."), 3);