|
@@ -1570,9 +1570,19 @@ void CSharpInstance::get_properties_state_for_reloading(List<Pair<StringName, Va
|
|
|
|
|
|
ManagedType managedType;
|
|
ManagedType managedType;
|
|
|
|
|
|
- GDMonoField *field = script->script_class->get_field(state_pair.first);
|
|
|
|
- if (!field)
|
|
|
|
|
|
+ GDMonoField *field = nullptr;
|
|
|
|
+ GDMonoClass *top = script->script_class;
|
|
|
|
+ while (top && top != script->native) {
|
|
|
|
+ field = top->get_field(state_pair.first);
|
|
|
|
+ if (field) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ top = top->get_parent_class();
|
|
|
|
+ }
|
|
|
|
+ if (!field) {
|
|
continue; // Properties ignored. We get the property baking fields instead.
|
|
continue; // Properties ignored. We get the property baking fields instead.
|
|
|
|
+ }
|
|
|
|
|
|
managedType = field->get_type();
|
|
managedType = field->get_type();
|
|
|
|
|