2个不稳定版本
0.2.0 | 2024年5月17日 |
---|---|
0.1.0 | 2024年1月19日 |
#1765 in 游戏开发
265KB
4.5K SLoC
Bevy快速入门
cargo add bevy_ghx_proc_gen
步骤 1
到 3
与 ghx_proc_gen
的 快速入门 相同。
- 要自动为我们生成资产,我们使用
ProcGenSimplePlugin
app.add_plugins(ProcGenSimplePlugin::<Cartesian2D, PbrMesh>::new());
- 要在Bevy视图中看到某些内容,我们将在
RulesModelsAssets
中设置资产
fn setup_generator(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
// ... Steps 1 to 3: Generator setup ...
// Simple procedural cube mesh and materials.
let cube_mesh = meshes.add(Mesh::from(shape::Cube { size: CUBE_SIZE }));
let white_mat = materials.add(Color::WHITE.into());
let black_mat = materials.add(Color::BLACK.into());*
// We create our models asset here, in a separate collection for the sake of simplicity.
// (We could also declare them with our models)
let mut models_assets = RulesModelsAssets::<PbrMesh>::new();
models_assets.add_asset(0, PbrMesh {
mesh: cube_mesh.clone(),
material: white_mat,
},
);
models_assets.add_asset(1, PbrMesh {
mesh: cube_mesh.clone(),
material: black_mat,
},
);
// ...
}
- 使用
GeneratorBundle
生成一个Entity
// The ProcGenSimplePlugin will detect this, generate and spawn the nodes.
commands.spawn(GeneratorBundle {
spatial: SpatialBundle::from_transform(Transform::from_translation(Vec3::new(
-grid.size_x() as f32 / 2., -grid.size_y() as f32 / 2., 0.,
))),
grid,
generator,
asset_spawner: AssetSpawner::new(models_assets, NODE_SIZE, Vec3::ONE),
});
Bevy插件
- 查看来自
bevy_ghx_grid
的GridDebugPlugin
,它为ghx_proc_gen
使用的网格类型提供调试工具。
ghx_proc_gen
不需要 插件即可工作,但如果您想快速开始,或需要一些用于生成的调试工具,有一些现成的插件可供使用
-
ProcGenSimplePlugin
:非常简单,只是用来生成和生成节点资产。请参阅 其源代码。 -
ProcGenDebugPlugin
[依赖于GridDebugPlugin
]:稍微复杂一些,但不是关注性能,而是关注演示和调试用例。您可以逐步查看生成,查看冲突发生的地方等。请参阅 其源代码。- 键绑定以及调试插件使用的多数设置可以通过一些Bevy
Resource
来覆盖。 - 注意,调试插件(所有功能都已启用)依赖于其他插件以正确运行,例如:
DefaultPickingPlugins
(来自 bevy_mod_picking),EguiPlugin
(来自 bevy_egui)或GridDebugPlugin
(来自 bevy_ghx_grid)。
- 键绑定以及调试插件使用的多数设置可以通过一些Bevy
这两个插件在您在一个 Entity
上插入 GeneratorBundle
组件时开始工作。
ProcGenDebugPlugin
编辑功能演示
https://github.com/Henauxg/ghx_proc_gen/assets/19689618/b2f15673-e6aa-4a1d-94f7-a98c903a7591
https://github.com/Henauxg/ghx_proc_gen/assets/19689618/5fa26a8f-7454-4574-9cc3-f6f77fdd0049
Cargo 功能
在 Cargo.toml 中找到列表和描述
default-assets-bundle-spawners
:此功能为几种基本类型编译简单的AssetBundleSpawner
。如果您不需要它们或想要自定义其实现,请禁用此功能。reflect
:简单地为crate中常见的结构体推导Reflect
。simple-plugin
:编译简单插件及其系统。debug-plugin
:编译调试插件、网格调试插件及其系统。picking
:通过bevy_mod_picking
启用拾取。如果启用,则由调试插件使用。egui-edit
:启用一个egui
编辑面板以检查节点和绘制模型
另请参阅 主crate 的 cargo 功能
兼容的 Bevy 版本
与 Bevy 版本的兼容性
ghx_proc_gen | bevy_ghx_proc_gen | bevy |
---|---|---|
0.2 | 0.2 | 0.13 |
0.1 | 0.1 | 0.12 |
许可证
bevy-ghx-proc-gen 是免费和开源的。此存储库中的所有代码都根据您的选择双许可
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache 许可证,版本 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
。
除非您明确表示,否则您提交给工作以包含在内的任何有意贡献,根据 Apache-2.0 许可证定义,应如上所述双许可,不附加任何其他条款或条件。
依赖项
~36–75MB
~1.5M SLoC