Ver código fonte

Fix NavigationObstacle3D debug clear regression

Clears NavigationObstacle3D on tree exit.
smix8 7 meses atrás
pai
commit
c734f90282

+ 12 - 1
scene/3d/navigation_obstacle_3d.cpp

@@ -111,7 +111,7 @@ void NavigationObstacle3D::_notification(int p_what) {
 			set_physics_process_internal(false);
 			_update_map(RID());
 #ifdef DEBUG_ENABLED
-			_update_debug();
+			_clear_debug();
 #endif // DEBUG_ENABLED
 		} break;
 
@@ -633,3 +633,14 @@ void NavigationObstacle3D::_update_static_obstacle_debug() {
 	}
 }
 #endif // DEBUG_ENABLED
+
+#ifdef DEBUG_ENABLED
+void NavigationObstacle3D::_clear_debug() {
+	RenderingServer *rs = RenderingServer::get_singleton();
+	ERR_FAIL_NULL(rs);
+	rs->mesh_clear(fake_agent_radius_debug_mesh_rid);
+	rs->mesh_clear(static_obstacle_debug_mesh_rid);
+	rs->instance_set_scenario(fake_agent_radius_debug_instance_rid, RID());
+	rs->instance_set_scenario(static_obstacle_debug_instance_rid, RID());
+}
+#endif // DEBUG_ENABLED

+ 1 - 0
scene/3d/navigation_obstacle_3d.h

@@ -71,6 +71,7 @@ private:
 	void _update_debug();
 	void _update_fake_agent_radius_debug();
 	void _update_static_obstacle_debug();
+	void _clear_debug();
 #endif // DEBUG_ENABLED
 
 protected: