1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-02 16:48:55 +00:00

Don't show exported script variables twice in the remote inspector

This commit is contained in:
Michael Alexsander
2025-10-13 19:39:22 -03:00
parent 7ed0b61676
commit c6852a2d91

View File

@@ -751,7 +751,7 @@ SceneDebuggerObject::SceneDebuggerObject(Object *p_obj) {
class_name = p_obj->get_class();
if (ScriptInstance *si = p_obj->get_script_instance()) {
// Read script instance constants and variables
// Read script instance constants and variables.
if (!si->get_script().is_null()) {
Script *s = si->get_script().ptr();
_parse_script_properties(s, si);
@@ -815,9 +815,23 @@ void SceneDebuggerObject::_parse_script_properties(Script *p_script, ScriptInsta
base = base->get_base_script();
}
HashSet<String> exported_members;
List<PropertyInfo> pinfo;
p_instance->get_property_list(&pinfo);
for (const PropertyInfo &E : pinfo) {
if (E.usage & (PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CATEGORY)) {
exported_members.insert(E.name);
}
}
// Members
for (KeyValue<const Script *, HashSet<StringName>> sm : members) {
for (const StringName &E : sm.value) {
if (exported_members.has(E)) {
continue; // Exported variables already show up in the inspector.
}
Variant m;
if (p_instance->get(E, m)) {
String script_path = sm.key == p_script ? "" : sm.key->get_path().get_file() + "/";