bevy_independent_transform

Crates.iobevy_independent_transform
lib.rsbevy_independent_transform
version0.1.2
sourcesrc
created_at2022-10-05 11:42:02.545824
updated_at2022-10-05 16:05:03.800804
descriptionEntities with an IndependentTransform have a position relative to their parent, but aren't part of the Bevy Transform hierarchy.
homepage
repositoryhttps://github.com/ickshonpe/bevy_independent_transform
max_upload_size
id680450
size274,408
(ickshonpe)

documentation

README

bevy_independent_transform

crates.io MIT/Apache 2.0 crates.io

Entities with an IndependentTransform have a position relative to their parent, but aren't part of the Bevy Transform hierarchy.

With Transform :

image

With IndependentTransform:

image

Supports Bevy 0.8

Setup

Add the dependency to your Cargo.toml

bevy_independent_transform = "0.1"

and the plugin to your App

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

Usage

IndependentTransform is a newtype wrapping Transform. Like Transform, an entity with a IndependentTransform should also have a GlobalTransform.

You can insert an IndependentTransform component directly, or spawn one of the bundles included with this crate:

  • IndependentSpriteBundle
  • IndependentSpriteSheetBundle
  • IndependentText2dBundle
  • IndependentTransformBundle

If an entity has both IndependentTransform and Transform components, the IndependentTransform component will be ignored.

Examples

cargo run --example text
cargo run --example sprites

Notes

For an alternative that respects the Bevy transform hierarchy, see my other crate at

https://github.com/ickshonpe/bevy_fixed_sprites

The approach here seems better for text and game icons, and bevy_fixed_sprites is probably better for sprites representing game characters and objects.

I'm not sure how to combine both methods. Maybe it's not possible without introducing a lot of complexity and extra components, and/or replacing Bevy's transform_propagate_system system entirely. Haven't really thought about it much though.

Commit count: 7

cargo fmt