Browse Source

Merge pull request #102535 from Hilderin/fix-plugin-scripts-load-twice-on-startup

Fix Plugin Scripts load twice on startup
Thaddeus Crews 8 tháng trước cách đây
mục cha
commit
9554481830
1 tập tin đã thay đổi với 3 bổ sung1 xóa
  1. 3 1
      editor/editor_node.cpp

+ 3 - 1
editor/editor_node.cpp

@@ -3710,7 +3710,9 @@ void EditorNode::set_addon_plugin_enabled(const String &p_addon, bool p_enabled,
 	// Only try to load the script if it has a name. Else, the plugin has no init script.
 	if (script_path.length() > 0) {
 		script_path = addon_path.get_base_dir().path_join(script_path);
-		scr = ResourceLoader::load(script_path, "Script", ResourceFormatLoader::CACHE_MODE_IGNORE);
+		// We should not use the cached version on startup to prevent a script reload
+		// if it is already loaded and potentially running from autoloads. See GH-100750.
+		scr = ResourceLoader::load(script_path, "Script", EditorFileSystem::get_singleton()->doing_first_scan() ? ResourceFormatLoader::CACHE_MODE_REUSE : ResourceFormatLoader::CACHE_MODE_IGNORE);
 
 		if (scr.is_null()) {
 			show_warning(vformat(TTR("Unable to load addon script from path: '%s'."), script_path));