use bevy::prelude::*;
use bevy::ui::UiTransform;
#[derive(Component, Debug, Clone, Copy)]
pub struct LastUiTransform(pub UiTransform);
pub fn sync_last_ui_transform(
mut commands: Commands,
mut query: Query<
(Entity, &UiTransform, Option<&mut LastUiTransform>),
Or<(
Added<UiTransform>,
Changed<UiTransform>,
Without<LastUiTransform>,
)>,
>,
) {
for (entity, transform, last_opt) in query.iter_mut() {
if let Some(mut last) = last_opt {
last.0 = *transform;
} else {
commands.entity(entity).insert(LastUiTransform(*transform));
}
}
}