#sprite #bevy #渲染 #图形 #游戏

bevy_independent_transform

具有独立变换的实体相对于其父实体具有位置,但不是Bevy变换层次结构的一部分

3个版本

0.1.2 2022年10月5日
0.1.1 2022年10月5日
0.1.0 2022年10月5日

#2344 in 游戏开发

MIT/Apache

190KB
142

bevy_independent_transform

crates.io MIT/Apache 2.0 crates.io

具有IndependentTransform的实体相对于其父实体具有位置,但不是Bevy变换层次结构的一部分。

使用Transform

image

使用IndependentTransform

image

支持Bevy 0.8

设置

将依赖项添加到您的Cargo.toml

bevy_independent_transform = "0.1"

并将插件添加到您的App

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

用法

IndependentTransform是包裹Transform的新类型。像Transform一样,具有IndependentTransform的实体也应该具有一个GlobalTransform

您可以直接插入一个IndependentTransform组件,或者使用此crate包含的任何捆绑包之一

  • IndependentSpriteBundle
  • IndependentSpriteSheetBundle
  • IndependentText2dBundle
  • IndependentTransformBundle

如果实体同时具有IndependentTransformTransform组件,则IndependentTransform组件将被忽略。

示例

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

注意

有关尊重Bevy变换层次结构的替代方案,请参阅我的另一个crate:

https://github.com/ickshonpe/bevy_fixed_sprites

此方法似乎更适合文本和游戏图标,而bevy_fixed_sprites可能更适合代表游戏角色和对象的精灵。

我不确定如何结合这两种方法。也许在不引入大量复杂性和额外组件的情况下是不可能的,或者需要完全替换Bevy的transform_propagate_system系统。但我还没有真正考虑过这个问题。

依赖关系

~42–56MB
~805K SLoC