2
0
Эх сурвалжийг харах

Fixed variables with built-in resource in remote inspector

Now loading the base resource first in ScriptEditorDebugger, the same way it's done in ScriptEditorPlugin.

Fixes #33013
PouleyKetchoupp 5 жил өмнө
parent
commit
94a50839fe

+ 13 - 1
editor/script_editor_debugger.cpp

@@ -597,7 +597,19 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
 				if (var.is_zero()) {
 				if (var.is_zero()) {
 					var = RES();
 					var = RES();
 				} else if (var.get_type() == Variant::STRING) {
 				} else if (var.get_type() == Variant::STRING) {
-					var = ResourceLoader::load(var);
+					String path = var;
+					if (path.find("::") != -1) {
+						// built-in resource
+						String base_path = path.get_slice("::", 0);
+						if (ResourceLoader::get_resource_type(base_path) == "PackedScene") {
+							if (!EditorNode::get_singleton()->is_scene_open(base_path)) {
+								EditorNode::get_singleton()->load_scene(base_path);
+							}
+						} else {
+							EditorNode::get_singleton()->load_resource(base_path);
+						}
+					}
+					var = ResourceLoader::load(path);
 
 
 					if (pinfo.hint_string == "Script")
 					if (pinfo.hint_string == "Script")
 						debugObj->set_script(var);
 						debugObj->set_script(var);