Skip to content

Commit dc5836f

Browse files
committed
Derive FromReflect for Transform and GlobalTransform (#6015)
# Objective Both components already derives `Reflect` and it would be nice to have `FromReflect` in order to ser/de between those types without relaying on `downcast`, since it can fail between different platforms, like WebAssembly. ## Solution Derive `FromReflect` for `Transform` and `GlobalTransform`. I thought if I should also derive `FromReflect` for `GlobalTransform`, since it's a computed component, but there may be some use cases where a `GlobalTransform` is needed to be sent over the wire, so I decided to do it.
1 parent 69d08c5 commit dc5836f

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

crates/bevy_transform/src/components/global_transform.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::ops::Mul;
33
use super::Transform;
44
use bevy_ecs::{component::Component, reflect::ReflectComponent};
55
use bevy_math::{Affine3A, Mat4, Quat, Vec3, Vec3A};
6-
use bevy_reflect::Reflect;
6+
use bevy_reflect::{FromReflect, Reflect};
77

88
/// Describe the position of an entity relative to the reference frame.
99
///
@@ -31,7 +31,7 @@ use bevy_reflect::Reflect;
3131
/// - [`global_vs_local_translation`]
3232
///
3333
/// [`global_vs_local_translation`]: https://github.com/bevyengine/bevy/blob/latest/examples/transforms/global_vs_local_translation.rs
34-
#[derive(Component, Debug, PartialEq, Clone, Copy, Reflect)]
34+
#[derive(Component, Debug, PartialEq, Clone, Copy, Reflect, FromReflect)]
3535
#[reflect(Component, PartialEq)]
3636
pub struct GlobalTransform(Affine3A);
3737

crates/bevy_transform/src/components/transform.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use std::ops::Mul;
3434
///
3535
/// [`global_vs_local_translation`]: https://github.com/bevyengine/bevy/blob/latest/examples/transforms/global_vs_local_translation.rs
3636
/// [`transform`]: https://github.com/bevyengine/bevy/blob/latest/examples/transforms/transform.rs
37-
#[derive(Component, Debug, PartialEq, Clone, Copy, Reflect)]
37+
#[derive(Component, Debug, PartialEq, Clone, Copy, Reflect, FromReflect)]
3838
#[reflect(Component, Default, PartialEq)]
3939
pub struct Transform {
4040
/// Position of the entity. In 2d, the last value of the `Vec3` is used for z-ordering.

0 commit comments

Comments
 (0)