13个稳定版本 (3个主要版本)
3.0.0 | 2024年7月6日 |
---|---|
2.8.0 | 2024年2月26日 |
2.7.0 | 2023年11月5日 |
2.5.0 | 2023年7月10日 |
0.1.0 | 2022年7月29日 |
#100 in 游戏开发
每月372次下载
用于 3 crates
2.5MB
318 代码行
bevy_sprite3d
在3D bevy 场景中使用2D精灵。
这是在其他引擎(Unity,Godot等)中很常见的设置。适用于
- 使用bevy的照明
(正交相机, 3D精灵)
- 具有更简单的视差和缩放的2D游戏
(透视相机, 3D精灵)
- 在3D世界中运行的2D游戏
(透视相机, 3D精灵和网格)
- 具有标牌精灵的3D游戏(例如 Delver)
网格和材质都内部缓存,因此此crate可以用于像瓦片图这样的东西而不会出现问题。
示例
使用 bevy_sprite3d
的示例
更复杂的场景: examples/dungeon.rs
。尝试使用 cargo run --example dungeon
运行此示例。
https://github.com/FraserLee/bevy_sprite3d/assets/30442265/1821b13c-9770-4f4e-a889-f67e06a3cda6
更多示例。这些示例不使用bevy,但演示了效果风格
用法
查看 示例 了解详细信息。长话短说,用以下方式初始化插件
app.add_plugin(Sprite3dPlugin)
并用以下方式生成精灵
fn setup(
mut commands: Commands,
images: Res<ImageAssets>,
mut sprite_params: Sprite3dParams
) {
// ----------------------- Single Static Sprite ----------------------------
commands.spawn_bundle(Sprite3d {
image: images.sprite.clone(),
pixels_per_metre: 400.,
partial_alpha: true,
unlit: true,
..default()
// transform: Transform::from_xyz(0., 0., 0.),
// pivot: Some(Vec2::new(0.5, 0.5)),
// double_sided: true,
}.bundle(&mut sprite_params));
// ------------------- Texture Atlas (Sprite Sheet) ------------------------
commands.spawn_bundle(AtlasSprite3d {
atlas: images.sprite_sheet.clone(),
pixels_per_metre: 32.,
partial_alpha: true,
unlit: true,
index: 3,
..default()
// transform: Transform::from_xyz(0., 0., 0.),
// pivot: Some(Vec2::new(0.5, 0.5)),
// double_sided: true,
}.bundle(&mut sprite_params));
}
一个小复杂问题:你的图像资产应该在生成之前加载 之前,因为 bevy_sprite3d
使用图像的一些属性(例如大小和纵横比)来构建3D网格。示例展示了如何使用Bevy的 States
来完成此操作。
版本控制
bevy_sprite3d 版本 |
bevy 版本 |
---|---|
3.0 | 0.14 |
2.8 | 0.13 |
2.7 | 0.12 |
2.5 - 2.6 | 0.11 |
2.4 | 0.10 |
2.1 - 2.3 | 0.9 |
1.1 - 2.0 | 0.8 |
1.0 | 0.7 |
依赖项
~38–74MB
~1.5M SLoC