diff --git a/editor/debugger/editor_debugger_inspector.cpp b/editor/debugger/editor_debugger_inspector.cpp index a9a66c7b23..f34f154256 100644 --- a/editor/debugger/editor_debugger_inspector.cpp +++ b/editor/debugger/editor_debugger_inspector.cpp @@ -104,7 +104,13 @@ void EditorDebuggerRemoteObjects::set_property_field(const StringName &p_propert String EditorDebuggerRemoteObjects::get_title() { if (!remote_object_ids.is_empty() && ObjectID(remote_object_ids[0].operator uint64_t()).is_valid()) { const int size = remote_object_ids.size(); - return size == 1 ? vformat(TTR("Remote %s: %d"), type_name, remote_object_ids[0]) : vformat(TTR("Remote %s (%d Selected)"), type_name, size); + if (size == 1) { + if (node_name.is_empty() || node_name == type_name) { + return vformat(TTR("Remote %s: %d"), type_name, remote_object_ids[0]); + } + return vformat(TTR("Remote %s (%s): %d"), type_name, node_name, remote_object_ids[0]); + } + return vformat(TTR("Remote %s (%d Selected)"), type_name, size); } return ""; @@ -347,6 +353,15 @@ EditorDebuggerRemoteObjects *EditorDebuggerInspector::set_objects(const Array &p } } remote_objects->type_name = class_name; + remote_objects->node_name = ""; + if (objects.size() == 1) { + for (const SceneDebuggerObject::SceneDebuggerProperty &prop : objects[0].properties) { + if (prop.first.name == "name") { + remote_objects->node_name = prop.second; + break; + } + } + } if (old_prop_size == remote_objects->prop_list.size() && new_props_added == 0) { // Only some may have changed, if so, then update those, if they exist. diff --git a/editor/debugger/editor_debugger_inspector.h b/editor/debugger/editor_debugger_inspector.h index 467c8d41ed..9b355c3901 100644 --- a/editor/debugger/editor_debugger_inspector.h +++ b/editor/debugger/editor_debugger_inspector.h @@ -52,6 +52,7 @@ protected: public: TypedArray remote_object_ids; String type_name; + String node_name; // For human-readable name. List prop_list; HashMap> prop_values; diff --git a/scene/debugger/scene_debugger_object.cpp b/scene/debugger/scene_debugger_object.cpp index ee1535f4a1..adee56bab6 100644 --- a/scene/debugger/scene_debugger_object.cpp +++ b/scene/debugger/scene_debugger_object.cpp @@ -53,6 +53,11 @@ SceneDebuggerObject::SceneDebuggerObject(Object *p_obj) { } if (Node *node = Object::cast_to(p_obj)) { + { + PropertyInfo pi(Variant::STRING_NAME, "name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE); + properties.push_back(SceneDebuggerProperty(pi, node->get_name())); + } + // For debugging multiplayer. { PropertyInfo pi(Variant::INT, String("Node/multiplayer_authority"), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_READ_ONLY);