#bevy #gamedev #entities #assets #opinionated #transforming #prototypes

rantz_proto

一个有偏见的Rust库,用于将磁盘上的资源转换为Bevy中的实体。

7个稳定版本

1.2.4 2024年7月20日
1.2.2 2024年7月17日
1.2.0 2024年7月12日
1.1.0 2024年7月10日
1.0.0 2024年7月8日

#376 in 游戏开发

Download history 289/week @ 2024-07-06 272/week @ 2024-07-13 243/week @ 2024-07-20 15/week @ 2024-07-27

819每月下载量
2 crates 中使用

MIT/Apache

36KB
743

rantz_proto

一个有偏见的Rust库,用于将磁盘上的资源转换为Bevy中的实体。

清单

清单存储在磁盘上的多种不同格式之一(参见'Cargo.toml')。它们被加载并转换为实现了Manifest trait的结构体。然后,这些结构体被进一步转换为原型并存储在PrototypeLibrary中。

原型

原型是实现了Prototype trait的结构体。它们存储在PrototypeLibrary资源中。该trait有两个主要功能,name()build()name()用于生成用于从库中检索原型的唯一名称。build()负责将原型转换为实体。该trait还有一个可选的第三个函数,rebuild(),默认实现不执行任何操作。

注意 一个结构体可以同时实现Manifest和Prototype,并在Manifest trait中仅返回Self。

热重载

注意:需要 'hot_reloading'(默认开启)

如果更改了底层资产,则会重新加载和重新处理清单为原型,然后每个使用给定原型构建的实体都会传递给rebuild(),以便进行“即时”更改。

基本上,如果你使用原型rebuild(),它将允许你更改任何活动实体以匹配更改。

注册

为了加载和处理清单,它必须被注册。这是通过调用 'app.add_prototype()' 作为构建应用程序的一部分来完成的

加载进度

注意:需要 'progress_tracking'(默认开启)

此软件包提供了对 iyes_progress 的支持,以跟踪加载进度。如果您想控制何时发生加载,可以使用 configure_set 与 'ProtoSchedule::Loading' 来控制加载发生的时间。

生成原型

为 'Commands'、'World' 和 'CommandQueue' 提供了扩展,引入了 'spawn_prototype' 和 'spawn_prototype_async',这些可以轻松生成原型。

在特定位置生成

我不想具体说明如何处理位置,所以这留给了您。我的建议是在您的原型中添加一个位置,并在调用 spawn_prototype 之前编辑该位置。

实体构建器

为了方便起见,还包括了一个 EntityBuilder。这是一个结构体,用于从 Module 创建和更新实体,非常适合在原型中使用。调用 build 将在每个模块上调用 install。调用 rebuild 将在每个模块上调用 update

用法

ProtoPlugin 添加到您的应用程序中。使用 app.add_manifest() 注册您的清单,然后使用 commands.spawn_prototype() 生成实体。

如果您想控制何时加载发生,请在 ProtoSchedule::Loading 日程上使用 app.configure_sets()

依赖项

~21–56MB
~1M SLoC