#serialization #bevy #bevy-plugin #wrapper #component #traits #moonshine-save

bevy_serialization_extras

用于管理与moonshine_save和包装器相关的序列化的Crate

10个版本 (4个破坏性更新)

0.5.0 2024年8月6日
0.4.3 2024年3月20日
0.4.0 2024年2月26日
0.3.1 2024年2月5日
0.1.0 2023年10月26日

#497 in 游戏开发

Download history 1/week @ 2024-06-09 1/week @ 2024-06-30 8/week @ 2024-07-07 40/week @ 2024-07-28 130/week @ 2024-08-04 9/week @ 2024-08-11

每月下载量 179次
用于bevy_serialization_urdf

MIT许可

1MB
2K SLoC

Rust 2K SLoC // 0.1% comments Rusty Object Notation 313 SLoC

bevy_serialization_extras

bevy的库,包含用于在bevy中管理序列化(使用moonshine-save以实现更“放手”的序列化工作流程)的包装器和系统

demo_gif.webm

功能

  • 通过plugins为组件提供开箱即用的序列化
// Component <-> WrapperComponent
.add_plugins(SerializeComponentFor::<AsyncCollider, ColliderFlag>::default())

// AssetHandle <-> WrapperComponent
.add_plugins(SerializeAssetFor::<StandardMaterial, MaterialFlag>::default())

// WrapperComponent -> AssetHandle
.add_plugins(DeserializeAssetFrom::<GeometryFlag, Mesh>::default())

// Query -> Component, 
.add_plugins(SerializeQueryFor::<Linkage, ImpulseJoint, JointFlag>::default())
  • 将组成资产的实体组序列化为它们的单个资产等效物,反之亦然

参见:https://github.com/rydb/bevy_serialization_urdf

//Query <-> Asset
.add_plugins(SerializeManyAsOneFor::<LinkQuery, Urdf>::default())
  • 通过包装器允许编辑不可序列化(非反射)实现组件

    例如:通过JointFlag编辑Rapier的ImpulseJoint

edit_example.png

  • 通过ManagedTypeRegistration特质进行包装器的类型注册

  • 一个可视化实用工具,可以列出可序列化/不可序列化组件(W.I.P)

用法

有关插件特质约束的实现,请参阅/Wrappers

待办事项

  • 添加一种机制,以便在更新到新版本时不会破坏旧版本的保存文件。

依赖项

~49–86MB
~1.5M SLoC