From 9784186fc68eb90f20280d9736fef7d0173892ab Mon Sep 17 00:00:00 2001 From: Sergey Vikhirev Date: Tue, 28 Mar 2023 01:18:10 +0400 Subject: [PATCH] Add ReflectComponent registration for Sprite (#8207) # Objective - `Sprite` components are not included in scene (de)serialization. - Fixes #8206 ## Solution - Add `#[reflect(Component, Default)]` to `Sprite` - Add `#[derive(FromReflect)]` to `Sprite` and `Anchor` --------- Co-authored-by: Carter Anderson --- crates/bevy_sprite/src/sprite.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/crates/bevy_sprite/src/sprite.rs b/crates/bevy_sprite/src/sprite.rs index 3a3e85a4ca..ad216c58fc 100644 --- a/crates/bevy_sprite/src/sprite.rs +++ b/crates/bevy_sprite/src/sprite.rs @@ -1,9 +1,10 @@ -use bevy_ecs::component::Component; +use bevy_ecs::{component::Component, reflect::ReflectComponent}; use bevy_math::{Rect, Vec2}; -use bevy_reflect::Reflect; +use bevy_reflect::{std_traits::ReflectDefault, FromReflect, Reflect}; use bevy_render::color::Color; -#[derive(Component, Debug, Default, Clone, Reflect)] +#[derive(Component, Debug, Default, Clone, Reflect, FromReflect)] +#[reflect(Component, Default)] #[repr(C)] pub struct Sprite { /// The sprite's color tint @@ -24,7 +25,7 @@ pub struct Sprite { /// How a sprite is positioned relative to its [`Transform`](bevy_transform::components::Transform). /// It defaults to `Anchor::Center`. -#[derive(Component, Debug, Clone, Default, Reflect)] +#[derive(Component, Debug, Clone, Default, Reflect, FromReflect)] #[doc(alias = "pivot")] pub enum Anchor { #[default]