Pretty Text is a text effects library for Bevy.
cargo run --bin showcase
cargo run --bin typewriter
Note
demo uses an older version of bevy_pretty_text with a different syntax because
one of its dependencies is not updated.
cargo run --bin demo
First, add bevy_pretty_text to the dependencies in your Cargo.toml:
[dependencies]
bevy_pretty_text = "0.3"Then, you'll need to add the PrettyTextPlugin to your app.
use bevy::prelude::*;
use bevy_pretty_text::prelude::*;
fn main() {
App::default()
.add_plugins((DefaultPlugins, PrettyTextPlugin))
.run();
}And then you can make some pretty text!
fn spawn_text(mut commands: Commands, mut materials: ResMut<Assets<Rainbow>>) {
// Spawn wavy `Text`.
commands.spawn((
Text::new("Hello, World!"),
Wave::default(),
TextFont::from_font_size(52.0),
));
// Use the typewriter.
commands.spawn((
Typewriter::new(30.),
Text2d::new("My text is revealed\none glyph at a time"),
Transform::from_xyz(0., 200., 0.),
TextFont::from_font_size(36.0),
));
// Spawn a style entity.
commands.spawn((
PrettyStyle("my_style"),
TextFont::from_font_size(48.0),
effects![
PrettyTextMaterial(materials.add(Rainbow::default())),
Wave::default(),
],
));
// Parse rich text and use custom style.
commands.spawn((
pretty!("I am |1|<0.8>*sniff*|1|<1.2> very [pretty](my_style)!|3|<1>"),
Typewriter::new(10.0),
TextFont::from_font_size(52.0),
Node {
position_type: PositionType::Absolute,
left: Val::Px(0.0),
bottom: Val::Px(0.0),
..Default::default()
},
));
}The repository examples should help you get up to speed on common usage patterns.
| Flag | Description | Default feature |
|---|---|---|
serialize |
Enable serialization for ParsedPrettyText. |
No |
bevy |
bevy_pretty_text |
|---|---|
| 0.17 | 0.3 |
| 0.16 | 0.1-0.2 |
Pretty Text is free and open source. All code in this repository is dual-licensed under either:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.




