Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ickshonpe/bevy_mod_ui_independent_text

Bevy UI text with a transform independent of the UI's layout.
https://github.com/ickshonpe/bevy_mod_ui_independent_text

bevy bevy-engine bevy-plugin bevy-ui rust text ui

Last synced: 2 months ago
JSON representation

Bevy UI text with a transform independent of the UI's layout.

Awesome Lists containing this project

README

        

# bevy_mod_ui_independent_text
[![crates.io](https://img.shields.io/crates/v/bevy_mod_ui_independent_text)](https://crates.io/crates/bevy_mod_ui_independent_text)
[![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)](https://github.com/ickshonpe/bevy_mod_ui_independent_text)
[![crates.io](https://img.shields.io/crates/d/bevy_mod_ui_independent_text)](https://crates.io/crates/bevy_mod_ui_independent_text)

Bevy UI text with a transform independent of the UI's layout.
* Draw text at any Z depth, above or below Bevy UI elements
* Text can be rotated and scaled
* Customisable alignment and bounds
* Supports Bevy 0.8

![image](text_depth_example.png)

## Usage

Add the dependency to `Cargo.toml`:

```toml
bevy_mod_ui_independent_text = "0.3.0"
```

Add the plugin to your Bevy app:

```rust
use bevy_mod_ui_independent_text::*;

fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(IndependentTextPlugin)
// ..rest of app
.run()
}
```

Don't forget a camera:

```rust
commands.spawn_bundle(Camera2dBundle::default());
```

Then you can draw text by spawning a IndependentTextBundle:

```rust
commands.spawn_bundle(IndependentTextBundle {
text: UiText(Text {
sections: vec![TextSection {
value: "Hello, world".to_string(),
style: TextStyle {
font: asset_loader.load("Topaz-8.ttf"),
font_size: 32.0,
color: Color::WHITE
},
}],
alignment: TextAlignment::CENTER,
}),
transform: Transform {
translation: Vec3::new(400., 300., 100.),
rotation: Quat::from_rotation_z(std::f32::consts::PI / 8.),
..Default::default()
},
..Default::default()
});
```

![image](hello_world.png)

## Examples

```
cargo --run --example hello_world
cargo --run --example depth
cargo --run --example bounded
```