bevy/crates
Gino Valente 19fc1f1ed2 bevy_reflect: Fix DynamicScene not respecting component registrations during serialization (#6288)
# Objective

When running the scene example, you might notice we end up printing out the following:
```ron
// ...
{
  "scene::ComponentB": (
    value: "hello",
    _time_since_startup: (
      secs: 0,
      nanos: 0,
    ),
  ),
},
// ...
```

We should not be printing out `_time_since_startup` as the field is marked with `#[reflect(skip_serializing)]`:

```rust
#[derive(Component, Reflect)]
#[reflect(Component)]
struct ComponentB {
  pub value: String,
  #[reflect(skip_serializing)]
  pub _time_since_startup: Duration,
}
```

This is because when we create the `DynamicScene`, we end up calling `Reflect::clone_value`:

82126697ee/crates/bevy_scene/src/dynamic_scene_builder.rs (L114-L114)

This results in non-Value types being cloned into Dynamic types, which means the `TypeId` returned from `reflected_value.type_id()` is not the same as the original component's. 

And this meant we were not able to locate the correct `TypeRegistration`.

## Solution

Use `TypeInfo::type_id()` instead of calling `Any::type_id()` on the value directly.

---

## Changelog

* Fix a bug introduced in `0.9.0-dev` where scenes disregarded component's type registrations
2022-10-24 14:53:12 +00:00
..
bevy_animation Fix end-of-animation index OOB (#6210) 2022-10-17 16:42:34 +00:00
bevy_app Adding Debug implementations for App, Stage, Schedule, Query, QueryState, etc. (#6214) 2022-10-10 20:59:38 +00:00
bevy_asset Add From<String> for AssetPath<'a> (#6337) 2022-10-24 14:14:24 +00:00
bevy_audio Update rodio requirement from 0.15 to 0.16 (#6020) 2022-09-19 13:56:56 +00:00
bevy_core tick local executor (#6121) 2022-10-24 13:46:40 +00:00
bevy_core_pipeline Accept Bundles for insert and remove. Deprecate insert/remove_bundle (#6039) 2022-09-21 21:47:53 +00:00
bevy_derive Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_diagnostic Add Exponential Moving Average into diagnostics (#4992) 2022-10-24 13:46:37 +00:00
bevy_dylib Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_dynamic_plugin Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_ecs implemented #[bundle(ignore)] (#6123) 2022-10-24 14:33:45 +00:00
bevy_ecs_compile_fail_tests Fix tests breaking when new WorldQuery impls are added (#6317) 2022-10-21 11:15:06 +00:00
bevy_encase_derive Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_gilrs feat: add GamepadInfo, expose gamepad names (#6342) 2022-10-24 14:33:50 +00:00
bevy_gltf Spawn now takes a Bundle (#6054) 2022-09-23 19:55:54 +00:00
bevy_hierarchy Add set_parent and remove_parent to EntityCommands (#6189) 2022-10-24 14:33:49 +00:00
bevy_input feat: add GamepadInfo, expose gamepad names (#6342) 2022-10-24 14:33:50 +00:00
bevy_internal Update wgpu to 0.14.0, naga to 0.10.0, winit to 0.27.4, raw-window-handle to 0.5.0, ndk to 0.7 (#6218) 2022-10-19 17:40:23 +00:00
bevy_log Make Resource trait opt-in, requiring #[derive(Resource)] V2 (#5577) 2022-08-08 21:36:35 +00:00
bevy_macro_utils Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_math Add Camera::viewport_to_world (#6126) 2022-10-05 22:16:26 +00:00
bevy_mikktspace Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_pbr Use wgsl saturate (#6318) 2022-10-22 08:37:51 +00:00
bevy_ptr Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_reflect bevy_reflect: Fix DynamicScene not respecting component registrations during serialization (#6288) 2022-10-24 14:53:12 +00:00
bevy_render Add global time scaling (#5752) 2022-10-22 18:52:29 +00:00
bevy_scene Create a scene from a dynamic scene (#6229) 2022-10-17 16:25:12 +00:00
bevy_sprite Add globals struct to mesh2d (#6222) 2022-10-10 19:23:43 +00:00
bevy_tasks tick local executor (#6121) 2022-10-24 13:46:40 +00:00
bevy_text Fixes incorrect glyph positioning for text2d (#6273) 2022-10-18 13:28:34 +00:00
bevy_time Add TimeUpdateStrategy resource for manual Time updating (#6159) 2022-10-24 14:33:47 +00:00
bevy_transform Fix documentation for looking_at/look_at (#4696) 2022-10-12 20:18:20 +00:00
bevy_ui Fix clipping in UI (#6351) 2022-10-24 14:33:51 +00:00
bevy_utils Remove Sync bound from Local (#5483) 2022-09-12 04:15:55 +00:00
bevy_window Update wgpu to 0.14.0, naga to 0.10.0, winit to 0.27.4, raw-window-handle to 0.5.0, ndk to 0.7 (#6218) 2022-10-19 17:40:23 +00:00
bevy_winit Update wgpu to 0.14.0, naga to 0.10.0, winit to 0.27.4, raw-window-handle to 0.5.0, ndk to 0.7 (#6218) 2022-10-19 17:40:23 +00:00