diff --git a/crates/bevy_reflect/src/enums/dynamic_enum.rs b/crates/bevy_reflect/src/enums/dynamic_enum.rs index 2835306b22505..214d54c5e302d 100644 --- a/crates/bevy_reflect/src/enums/dynamic_enum.rs +++ b/crates/bevy_reflect/src/enums/dynamic_enum.rs @@ -216,10 +216,10 @@ impl Enum for DynamicEnum { } fn field_at(&self, index: usize) -> Option<&dyn PartialReflect> { - if let DynamicVariant::Tuple(data) = &self.variant { - data.field(index) - } else { - None + match &self.variant { + DynamicVariant::Tuple(data) => data.field(index), + DynamicVariant::Struct(data) => data.field_at(index), + DynamicVariant::Unit => None, } } @@ -232,10 +232,10 @@ impl Enum for DynamicEnum { } fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect> { - if let DynamicVariant::Tuple(data) = &mut self.variant { - data.field_mut(index) - } else { - None + match &mut self.variant { + DynamicVariant::Tuple(data) => data.field_mut(index), + DynamicVariant::Struct(data) => data.field_at_mut(index), + DynamicVariant::Unit => None, } }