你知道吗?
bevy绘制一个三角形
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(Startup, setup)
.run();
}
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets>,
mut materials: ResMut<Assets>,
) {
commands.spawn(Camera2d);
commands.spawn((
Mesh2d(meshes.add(
Triangle2d::new(
Vec2::Y * 50.,
Vec2::new(-50.,-50.),
Vec2::new(50.,-50.)
)
)),
MeshMaterial2d(materials.add(
Color::srgb(0.6,0.8,0.7)
)),
Transform::from_xyz(0., 0., 0.),
));
}
这里的重点是一个本身没有反射的语言,ECS 系统如何获取自定义函数形参列表,并自动注入实参。事实证明 Rust 的泛型完全可以写的和 C++ 的某些模板一样复杂。