10个版本 (6个破坏性更新)
0.7.0 | 2024年2月24日 |
---|---|
0.6.0 | 2023年11月8日 |
0.5.1 | 2023年11月2日 |
0.4.1 | 2023年3月7日 |
0.1.1 | 2022年7月15日 |
#244 in 游戏开发
每月下载量124次
38KB
358 行
Bevy Mod Transform2d
Bevy的2D变换组件。
使用方法
运行 cargo add bevy_mod_transform2d
.
或者将依赖添加到您的 Cargo.toml
[dependencies]
bevy_mod_transform2d = "0.6"
示例
use bevy::prelude::*;
use bevy_mod_transform2d::prelude::*;
fn main() {
App::new()
.add_plugins((
DefaultPlugins,
// Add the Transform2dPlugin
Transform2dPlugin,
))
.add_systems(Startup, setup)
.add_systems(Update, orbit)
.run();
}
fn setup(mut commands: Commands) {
commands.spawn(Camera2dBundle::default());
commands.spawn((
SpriteBundle {
sprite: Sprite {
custom_size: Some(Vec2::splat(50.)),
..default()
},
..default()
},
// Add a Transform2d component
Transform2d::from_xy(200., 0.),
));
}
// Make the sprite orbit the center
fn orbit(mut query: Query<&mut Transform2d, With<Sprite>>, time: Res<Time>) {
for mut transform in &mut query {
// No quaternions in sight!
transform.rotate_around(Vec2::ZERO, time.delta_seconds());
}
}
查看其他 示例.
版本表。
Bevy | transform2d |
---|---|
0.12 | 0.6 |
0.11 | 0.5 |
0.10 | 0.4 |
0.9 | 0.3 |
0.8 | 0.2 |
0.7 | 0.1 |
进一步详情
请注意,Transform2d
组件不会替换Transform
组件,而是向其写入。为了使Transform2d
功能,需要Transform
和GlobalTransform
组件。
这使得这个crate可以与交互Transform
的crate兼容(例如bevy_rapier2d
和bevy_xpbd_2d
),但这会以性能为代价,并且它支持将3D变换与2D变换及其反向关联。
与其他crate的集成
要与其他修改Transform
状态的库集成,需要正确的时间同步Transform
和Transform2d
的状态。
bevy_rapier2d
和bevy_xpbd_2d
的集成已包含在内,并可作为一个功能启用
[dependencies]
bevy_mod_transform2d = { version = "0.6", features = ["bevy_rapier2d"] }
# or
bevy_mod_transform2d = { version = "0.6", features = ["bevy_xpbd_2d"] }
如果有其他与变换交互的插件,以下是同步状态以使Transform2d
与该插件兼容的方法。
- 当系统需要从
Transfrom
读取时,在它之前添加提供的sync_transform_2d_to_3d
系统。 - 当系统写入
Transfrom
时,在它之后添加提供的sync_transform_3d_to_2d
系统。
许可证
根据您的选择,在Apache License, Version 2.0或MIT许可证下许可。除非您明确声明,否则您根据Apache-2.0许可证定义的,有意提交以包含在此软件包中的任何贡献,都将如上所述双重许可,不得附加任何额外条款或条件。
依赖项
~18–60MB
~1M SLoC