A Cylinder looks like a stack of circles.
commands.spawn(PbrBundle {
mesh: meshes
.add(
Cylinder {
radius: 0.5,
height: 0.25,
..default()
}
.into(),
)
.into(),
..default()
});
We can set the radius and the height of the Cylinder.
We set our camera position to (2, 1, 3)
and make it looking at the origin.
The full code is as follows:
use bevy::{
app::{App, Startup},
asset::Assets,
core_pipeline::core_3d::Camera3dBundle,
ecs::system::{Commands, ResMut},
math::Vec3,
pbr::{PbrBundle, PointLightBundle, StandardMaterial},
render::mesh::{shape::Cylinder, Mesh},
transform::components::Transform,
utils::default,
DefaultPlugins,
};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(Startup, setup)
.run();
}
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
commands.spawn(Camera3dBundle {
transform: Transform::from_xyz(2., 1., 3.).looking_at(Vec3::ZERO, Vec3::Y),
..default()
});
commands.spawn(PbrBundle {
mesh: meshes
.add(
Cylinder {
radius: 0.5,
height: 0.25,
..default()
}
.into(),
)
.into(),
material: materials.add(StandardMaterial::default()).into(),
..default()
});
commands.spawn(PointLightBundle {
transform: Transform::from_xyz(2., 2., 1.),
..default()
});
}
Result:
➡️ Next: Capsule
📘 Back: Table of contents