bevy_2dviewangle




Bevy plugin to easier to manage and switch texture base on view angles.
Quickstart
#[derive(View2dCollection, Default)]
struct MyAssets {
#[textureview(actor = "player", action = "idle", angle = "front")]
pub idle_front: Handle<Image>,
#[textureview(angle = "back")]
pub idle_back: Handle<Image>,
#[textureview(angle = "left")]
pub idle_left: Handle<Image>,
#[textureview(angle = "any")]
pub idle_any_layout: Handle<TextureAtlasLayout>,
}
fn switch_sprite(
mut actors: Query<(&mut View2dActor, Entity)>,
mut action_event: MessageWriter<ViewChanged>,
) {
for (mut act, e) in actors.iter_mut() {
act.action = ActionMyAssets::Idle.into(); act.angle = Angle::Right;
action_event.write(ViewChanged { entity: e });
}
}
Please see in examples for more detail.
This plugin can work with bevy_asset_loader too:
#[derive(AssetCollection, View2dCollection, Resource)]
pub struct MyAssets {
#[asset(path = "frog_idle_front.png")]
#[textureview(actor = "frog", action = "idle", angle = "front")]
pub idle_front: Handle<Image>,
#[asset(path = "frog_idle_back.png")]
#[textureview(angle = "back")]
pub idle_back: Handle<Image>,
#[asset(path = "frog_idle_left.png")]
#[textureview(angle = "left")]
pub idle_left: Handle<Image>,
#[asset(texture_atlas_layout(tile_size_x = 16, tile_size_y = 16, columns = 1, rows = 3))]
#[textureview(angle = "any")]
pub any_layout: Handle<TextureAtlasLayout>,
}
License
Please see LICENSE.
Compatible Bevy Versions
| bevy |
bevy_2dviewangle |
| 0.17 |
0.11-0.12 |
| 0.16 |
0.10 |
| 0.15 |
0.9 |
| 0.14 |
0.7-0.8 |
| 0.13 |
0.2-0.6 |
| 0.12 |
0.1 |