Struct bevy_scene::serde::SceneSerializer
source · pub struct SceneSerializer<'a> {
pub scene: &'a DynamicScene,
pub registry: &'a TypeRegistryArc,
}
Expand description
Handles serialization of a scene as a struct containing its entities and resources.
Examples
// Define an example component type.
#[derive(Component, Reflect, Default)]
#[reflect(Component)]
struct MyComponent {
foo: [usize; 3],
bar: (f32, f32),
baz: String,
}
// Create our world, provide it with a type registry.
// Normally, [`App`] handles providing the type registry.
let mut world = World::new();
let registry = AppTypeRegistry::default();
{
let mut registry = registry.write();
// Register our component. Primitives and String are registered by default.
// Sequence types are automatically handled.
registry.register::<MyComponent>();
}
world.insert_resource(registry);
world.spawn(MyComponent {
foo: [1, 2, 3],
bar: (1.3, 3.7),
baz: String::from("test"),
});
// Print out our serialized scene in the RON format.
let registry = world.resource::<AppTypeRegistry>();
let scene = DynamicScene::from_world(&world);
let scene_serializer = SceneSerializer::new(&scene, ®istry.0);
println!("{}", bevy_scene::serialize_ron(scene_serializer).unwrap());
Fields§
§scene: &'a DynamicScene
The scene to serialize.
registry: &'a TypeRegistryArc
Type registry in which the components and resources types used in the scene are registered.
Implementations§
source§impl<'a> SceneSerializer<'a>
impl<'a> SceneSerializer<'a>
sourcepub fn new(scene: &'a DynamicScene, registry: &'a TypeRegistryArc) -> Self
pub fn new(scene: &'a DynamicScene, registry: &'a TypeRegistryArc) -> Self
Creates a scene serializer.
Trait Implementations§
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for SceneSerializer<'a>
impl<'a> Send for SceneSerializer<'a>
impl<'a> Sync for SceneSerializer<'a>
impl<'a> Unpin for SceneSerializer<'a>
impl<'a> !UnwindSafe for SceneSerializer<'a>
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
Return the
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.