feat(components): warn instead of crash when components aren't reflectable (#207)

* warn instead of panic when components aren't reflectable
* entities get marked as processed even if components are not inserted
This commit is contained in:
Chris Biscardi 2024-07-29 01:17:36 -07:00 committed by GitHub
parent aff11cca4c
commit 0b038de584
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,7 +8,7 @@ use bevy::{
}, },
gltf::{GltfExtras, GltfMaterialExtras, GltfMeshExtras, GltfSceneExtras}, gltf::{GltfExtras, GltfMaterialExtras, GltfMeshExtras, GltfSceneExtras},
hierarchy::Parent, hierarchy::Parent,
log::debug, log::{debug, warn},
reflect::{Reflect, TypeRegistration}, reflect::{Reflect, TypeRegistration},
utils::HashMap, utils::HashMap,
}; };
@ -145,10 +145,12 @@ pub fn add_components_from_gltf_extras(world: &mut World) {
{ {
let mut entity_mut = world.entity_mut(entity); let mut entity_mut = world.entity_mut(entity);
type_registration let Some(reflected_component) = type_registration.data::<ReflectComponent>() else {
.data::<ReflectComponent>() warn!(?component, "unable to reflect component");
.expect("Unable to reflect component") entity_mut.insert(GltfProcessed);
.insert(&mut entity_mut, &*component, &type_registry); continue;
};
reflected_component.insert(&mut entity_mut, &*component, &type_registry);
entity_mut.insert(GltfProcessed); // entity_mut.insert(GltfProcessed); //
} }