bevy_text_animation

Crates.iobevy_text_animation
lib.rsbevy_text_animation
version0.4.2
created_at2024-04-20 08:49:11.697988+00
updated_at2025-08-14 13:42:10.937687+00
descriptiontext animation library for Bevy
homepage
repositoryhttps://github.com/funatsufumiya/bevy_text_animation
max_upload_size
id1214459
size139,091
Fumiya Funatsu (funatsufumiya)

documentation

README

bevy_text_animation

Crates.io Docs.rs License

screenshot

Text animation library for Bevy, just like typewriter effect. You can use it with Text or Text2d.

see examples for usage.

Versions

bevy bevy_text_animation
0.16 0.4
0.15 0.3
0.14 0.2
0.13 0.1

Usage

simple.rs

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);
    }
}

TODOs

  • multiple sections
  • alpha color animation (custom animation)
  • punctuation

License

Dual licensed under WTFPL and/or 0BSD.

Commit count: 32

cargo fmt