10个版本 (5个破坏性更新)
0.6.0 | 2024年7月7日 |
---|---|
0.5.0 | 2024年3月3日 |
0.4.1 | 2024年3月2日 |
0.4.0 | 2023年11月17日 |
0.1.0 | 2023年3月13日 |
#61 in 游戏开发
每月下载量 26次
180KB
3.5K SLoC
Bevy插件用于PhysX 5
PhysX 是由Nvidia开发的一个用C++编写的开源物理SDK。
这个crate是Bevy ECS和Rust 绑定之间的桥梁,由Embark Studios制作。
入门
这里有一个示例片段,创建一个在固定地面上弹跳的球。
// this is similar to basic simulation example in rapier3d
use bevy::prelude::*;
use bevy_mod_physx::prelude::*;
use bevy_mod_physx::prelude::{Material, Shape}; // bevy prelude conflicts
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(PhysicsPlugins.set(
PhysicsCore::new().with_pvd()
))
.add_systems(Startup, setup_graphics)
.add_systems(Startup, setup_physics)
.insert_resource(DebugRenderSettings::enable())
.run();
}
fn setup_graphics(mut commands: Commands) {
// Add a camera so we can see the debug-render.
commands.spawn(Camera3dBundle {
transform: Transform::from_xyz(-3.0, 3.0, 10.0).looking_at(Vec3::ZERO, Vec3::Y),
..Default::default()
});
}
fn setup_physics(
mut commands: Commands,
mut physics: ResMut<Physics>,
mut geometries: ResMut<Assets<Geometry>>,
mut materials: ResMut<Assets<Material>>,
) {
// Create the ground.
commands.spawn((
RigidBody::Static,
Shape {
geometry: geometries.add(Plane3d::default()),
material: materials.add(Material::new(&mut physics, 0.5, 0.5, 0.6)),
..default()
},
SpatialBundle::from_transform(Transform::from_xyz(0.0, -2.0, 0.0)),
));
// Create the bouncing ball.
commands.spawn((
RigidBody::Dynamic,
Shape {
geometry: geometries.add(Sphere::new(0.5)),
material: materials.add(Material::new(&mut physics, 0.5, 0.5, 0.6)),
..default()
},
SpatialBundle::from_transform(Transform::from_xyz(0.0, 4.0, 0.0)),
));
}
兼容性/先例
发布 | 0.6.x | Bevy 0.14 | PhysX 5 |
0.5.x | Bevy 0.13 | PhysX 5 | |
0.4.x | Bevy 0.12 | PhysX 5 | |
0.2.x - 0.3.x | Bevy 0.11 | PhysX 5 | |
git标签 | git:a21b570 | Bevy 0.11 | PhysX 4 |
(未发布) | git:43ae89e | Bevy 0.10 | PhysX 5 |
git:8f66a99 | Bevy 0.10 | PhysX 4 | |
其他crate | bevy_mod_physx v0.1.0 | Bevy 0.10 | 已弃用 |
bevy_prototype_physx | Bevy 0.2-0.5 | 未知 | |
bevy_physx | 从未存在 | ||
注意:您可以找到此crate的PhysX 4版本。它存在是因为PhysX 5绑定没有车辆API。它不受官方支持也未被发布到crates.io,未来可能会被移除。
依赖关系
~31–70MB
~1M SLoC