3个版本
| 0.1.2 | 2022年10月5日 |
|---|---|
| 0.1.1 | 2022年10月5日 |
| 0.1.0 | 2022年10月5日 |
#2344 in 游戏开发
190KB
142 行
bevy_independent_transform
具有IndependentTransform的实体相对于其父实体具有位置,但不是Bevy变换层次结构的一部分。
使用Transform

使用IndependentTransform

支持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包含的任何捆绑包之一
IndependentSpriteBundleIndependentSpriteSheetBundleIndependentText2dBundleIndependentTransformBundle
如果实体同时具有IndependentTransform和Transform组件,则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