| Crates.io | bevy_text_animation |
| lib.rs | bevy_text_animation |
| version | 0.4.2 |
| created_at | 2024-04-20 08:49:11.697988+00 |
| updated_at | 2025-08-14 13:42:10.937687+00 |
| description | text animation library for Bevy |
| homepage | |
| repository | https://github.com/funatsufumiya/bevy_text_animation |
| max_upload_size | |
| id | 1214459 |
| size | 139,091 |

Text animation library for Bevy, just like typewriter effect.
You can use it with Text or Text2d.
see examples for usage.
| bevy | bevy_text_animation |
|---|---|
| 0.16 | 0.4 |
| 0.15 | 0.3 |
| 0.14 | 0.2 |
| 0.13 | 0.1 |
use bevy::prelude::*;
use bevy_text_animation::{TextAnimationFinished, TextAnimatorPlugin, TextSimpleAnimator};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(TextAnimatorPlugin)
.add_systems(Startup, setup)
.add_systems(Update, key_handler)
.add_systems(Update, event_handler)
.run();
}
fn setup(
mut commands: Commands,
) {
commands.spawn(Camera2d::default());
commands.spawn((
Text2d::new(""),
TextFont {
font_size: 60.0,
..default()
},
TextColor(Color::WHITE),
)).insert(TextSimpleAnimator::new("Hello, World!", 8.0));
}
fn key_handler(
keyboard_input: Res<ButtonInput<KeyCode>>,
mut query: Query<&mut TextSimpleAnimator>,
) {
for mut animator in query.iter_mut() {
if keyboard_input.just_pressed(KeyCode::Space) {
animator.play();
}
}
}
fn event_handler(
mut events: EventReader<TextAnimationFinished>,
) {
for event in events.read() {
println!("Text Animation finished for entity (id: {:?})", event.entity);
}
}
Dual licensed under WTFPL and/or 0BSD.