diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 3fad85c95ca..0a9d35fe644 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -198,6 +198,10 @@ void EditorPropertyArray::_property_changed(const String &p_property, Variant p_ return; } + if (p_value.get_type() == Variant::OBJECT && p_value.is_null()) { + p_value = Variant(); // `EditorResourcePicker` resets to `Ref()`. See GH-82716. + } + int index; if (p_property.begins_with("metadata/")) { index = p_property.get_slice("/", 2).to_int(); @@ -726,6 +730,10 @@ EditorPropertyArray::EditorPropertyArray() { ///////////////////// DICTIONARY /////////////////////////// void EditorPropertyDictionary::_property_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) { + if (p_value.get_type() == Variant::OBJECT && p_value.is_null()) { + p_value = Variant(); // `EditorResourcePicker` resets to `Ref()`. See GH-82716. + } + if (p_property == "new_item_key") { object->set_new_item_key(p_value); } else if (p_property == "new_item_value") {