Module bevy_tween::tween
source · Expand description
Module containing implementations for tween
§Tween
Components:
Systems
Targets:
See available interpolators in interpolate
.
§Registering systems
In order for your custom interpolators to work. You have to register systems
to actually have something happening.
The DefaultTweenPlugins
will already register some systems for you already to get started.
Check DefaultInterpolatorsPlugin
or DefaultDynInterpolatorsPlugin
.
This crate contains generic systems tweening components, assets, and resources, allowing you to quickly register your custom interpolators.
Systems:
component_tween_system()
, component tweening systemresource_tween_system()
, resource tweening systemasset_tween_system()
, asset tweening system
Let’s say you have some custom components with multiple interpolators.
use bevy::prelude::*;
use bevy_tween::prelude::*;
#[derive(Component)]
pub struct Foo {
a: f32,
b: f32,
c: f32,
}
mod my_interpolate {
use bevy::prelude::*;
use bevy_tween::prelude::*;
pub struct FooA {
/* ... */
}
impl Interpolator for FooA {
/* ... */
}
pub struct FooB {
/* ... */
}
impl Interpolator for FooB {
/* ... */
}
pub struct FooC {
/* ... */
}
impl Interpolator for FooC {
/* ... */
}
}
There’s 2 kind of system you might want to register.
§Registering system for generic interpolator
Generic interpolator means we’re not using any dynamic dispatch. We’ve to register this system for every individual interpolator.
fn main() {
use bevy_tween::component_tween_system;
use my_interpolate::*;
App::new().add_tween_systems((
component_tween_system::<FooA>(),
component_tween_system::<FooB>(),
component_tween_system::<FooC>(),
));
}
§Registering system for dynamic interpolator
Dynamic interpolator means we’re using dynamic dispatch or trait object. We don’t have to register system for every interpolator, we only have to register this system just for every individual component/asset/resource.
fn main() {
use my_interpolate::*;
use bevy_tween::component_dyn_tween_system;
// One system to rule them all
// Note that we're only using the `Foo` type, not `FooA`, `FooB`,
// and `FooC`!
App::new().add_tween_systems(component_dyn_tween_system::<Foo>());
// `component_dyn_tween_system` is just an alias for
// `component_tween_system::<Box<dyn Interpolator<Item = ...>>>`
}
Structs§
ComponentTween
’s system will navigate up the parent chain for this marker component while usingTargetComponent::Marker
.- Skip a tween from tweening.
- Tell the tween what resource to tween.
- Containing
target
andinterpolator
- Automatically managed by an
Interpolation
such asEaseFunction
andEaseClosure
when a tween has the componentTimeSpanProgress
. Seesample_interpolations_system
Enums§
- TargetAsset
bevy_asset
Tell the tween what asset of what type to tween. - Tell the tween what component of what entity to tween.
Traits§
- Trait for type to convert into a target type.
Functions§
- apply_asset_tween_system
bevy_asset
Apply anyTween
with theInterpolator
thatTargetAsset
with value provided byTweenInterpolationValue
component. - Apply any
Tween
with theInterpolator
thatTargetComponent
with value provided byTweenInterpolationValue
component. - Apply any
Tween
with theInterpolator
thatTargetResource
with value provided byTweenInterpolationValue
component. - asset_dyn_tween_system
bevy_asset
System alias forapply_asset_tween_system
that uses boxed dynamicInterpolator
. (Box<dyn Interpolator
) - asset_tween_system
bevy_asset
Alias forapply_asset_tween_system
and may contains more systems in the future. - System alias for
component_tween_system
that uses boxed dynamicInterpolator
. (Box<dyn Interpolator
) - Alias for
apply_component_tween_system
and may contains more systems in the future. - System alias for
apply_resource_tween_system
that uses boxed dynamicInterpolator
. (Box<dyn Interpolator
) - Alias for
apply_resource_tween_system
and may contains more systems in the future.
Type Aliases§
- AssetDynTween
bevy_asset
- AssetTween
bevy_asset