Selaa lähdekoodia

Merge pull request #98156 from jaydensipe/show-custom-icons-in-remote-scene-view

Show correct icons in remote object inspector (EditorDebuggerRemoteObject)
Thaddeus Crews 10 kuukautta sitten
vanhempi
commit
c032acb865
1 muutettua tiedostoa jossa 14 lisäystä ja 0 poistoa
  1. 14 0
      editor/gui/editor_object_selector.cpp

+ 14 - 0
editor/gui/editor_object_selector.cpp

@@ -30,6 +30,7 @@
 
 #include "editor_object_selector.h"
 
+#include "editor/debugger/editor_debugger_inspector.h"
 #include "editor/editor_data.h"
 #include "editor/editor_node.h"
 #include "editor/editor_string_names.h"
@@ -131,6 +132,19 @@ void EditorObjectSelector::update_path() {
 		Ref<Texture2D> obj_icon;
 		if (Object::cast_to<MultiNodeEdit>(obj)) {
 			obj_icon = EditorNode::get_singleton()->get_class_icon(Object::cast_to<MultiNodeEdit>(obj)->get_edited_class_name());
+		} else if (Object::cast_to<EditorDebuggerRemoteObject>(obj)) {
+			String class_name;
+			Ref<Script> base_script = obj->get_script();
+			if (base_script.is_valid()) {
+				class_name = base_script->get_global_name();
+
+				if (class_name.is_empty()) {
+					// If there is no class_name in this script we just take the script path.
+					class_name = base_script->get_path();
+				}
+			}
+
+			obj_icon = EditorNode::get_singleton()->get_class_icon(class_name.is_empty() ? Object::cast_to<EditorDebuggerRemoteObject>(obj)->type_name : class_name);
 		} else {
 			obj_icon = EditorNode::get_singleton()->get_object_icon(obj);
 		}