A GSAP-like animation plugin for Bevy UI.
To use this plugin, the first step is to add a dependency to your Cargo.toml
:
toml
[dependencies]
bevy_ui_animation = "1.0.0"
Add the AnimationPlugin
to your main.rs
:
```rust use bevy::prelude::; use bevy_ui_animation::;
App::new() .addplugins(DefaultPlugins) .addplugin(AnimationPlugin) .run(); ```
Animate a bundle:
```rust use bevy::prelude::; use bevy_ui_animation::;
fn setup(mut commands: Commands) { commands.spawnbundle(UiCameraBundle::default()); commands .spawnbundle(NodeBundle { style: Style { size: Size::new(Val::Percent(100.0), Val::Percent(100.0)), ..Default::default() }, color: UiColor(Color::BLUE), transform: Transform::default(), ..Default::default() }) .insert(Animation::new(Vars { style: Some(Style { size: Size::new(Val::Percent(50.0), Val::Percent(50.0)), ..Default::default() }), color: Some(UiColor(Color::RED)), transform: Some(Transform::fromrotation(Quat::fromrotationz( 180f32.to_radians(), ))), duration: 2.0, ease: Ease::ExpoOut, repeat: true, yoyo: true, ..Default::default() })); } ```
Preview:
You can directly run this example by:
bash
cargo run --example all --features="bevy/bevy_winit"
| Field | Type | Default | Description |
| ------------------ | --------------------------- | --------- | --------------------------------------------------------------------------- |
| style | Option<Style>
| None
| A Bevy Style component containing the destination fields to animate to. |
| color | Option<UiColor>
| None
| A Bevy UiColor component containing the destination fields to animate to. |
| transform | Option<Transform>
| None
| A Bevy Transform component containing the destination fields to animate to. |
| transformrotation | Option<TransformRotation>
| None
| A struct to rotate a Bevy Transform component around a given fixed axis. |
| textcolor | Option<TextColor>
| None
| A struct to lerp the color of a Bevy Text component |
| delay | f32
| 0.0
| Amount of delay before the animation should begin (in seconds). |
| duration | f32
| 0.5
| The duration of the animation (in seconds). |
| ease | Ease
| ExpoOut
| The ease function to control the rate of change during the animation. |
| repeat | bool
| false
| If true
, the animation will keep repeating. |
| yoyo | bool
| false
| If true
, the animation will run in the opposite direction once finished. |
| paused | bool
| false
| If true
, the animation will pause itself immediately upon creation. |
| Name | Field | | --------- | ---------------- | | Style | position | | | margin | | | padding | | | border | | | size | | UiColor | color | | Transform | translation | | | rotation | | | scale | | Text | TextStyle::color |
| Name | 0% | 50% | 100% |
| ------------ | ---------- | ---------- | --------- |
| BackIn | 0.0
| -0.375
| 1.0
|
| BackInOut | 0.0
| 0.499
| 1.0
|
| BackOut | -1.19e-7
| 1.375
| 1.0
|
| BounceIn | 0.0
| 0.281
| 1.0
|
| BounceInOut | 0.0
| 0.5
| 1.0
|
| BounceOut | 0.0
| 0.718
| 1.0
|
| ElasticIn | 0.0
| -4.29e-8
| 2.74e-6
|
| ElasticInOut | 0.0
| 0.099
| 1.0
|
| ElasticOut | 0.099
| 1.0
| 1.0
|
| ExpoIn | 0.0
| 0.031
| 1.0
|
| ExpoInOut | 0.0
| 0.5
| 1.0
|
| ExpoOut | 0.0
| 0.968
| 1.0
|
| Linear | 0.0
| 0.5
| 1.0
|
| PowerIn | 0.0
| 0.25
| 1.0
|
| PowerInOut | 0.0
| 0.5
| 1.0
|
| PowerOut | 0.0
| 0.75
| 1.0
|
| bevy_ui_animation
| bevy
|
| ------------------- | ------ |
| 1.0
| 0.6
|
miZyind mizyind@gmail.com
Licensed under the MIT License.