From b6d09b33d800165c63ec8b00f09700f067871124 Mon Sep 17 00:00:00 2001 From: Teddy <102239127+Onsraa@users.noreply.github.com> Date: Wed, 25 Feb 2026 09:56:49 -0500 Subject: [PATCH] docs: bevy require components It's best practice since 0.15 to use Require Components instead of Bundles. Required Components are cached on the archetype graph, meaning computing what required components are necessary for a given type of insert only happens once. --- skills/bevy-ecs-expert/SKILL.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/skills/bevy-ecs-expert/SKILL.md b/skills/bevy-ecs-expert/SKILL.md index 7d6333e5..ebac97be 100644 --- a/skills/bevy-ecs-expert/SKILL.md +++ b/skills/bevy-ecs-expert/SKILL.md @@ -83,25 +83,27 @@ fn main() { ## Examples -### Example 1: Spawning Entities with Bundles +### Example 1: Spawning Entities with Require Component ```rust -#[derive(Bundle)] -struct PlayerBundle { - player: Player, - velocity: Velocity, - sprite: SpriteBundle, +use bevy::prelude::*; + +#[derive(Component, Reflect, Default)] +#[require(Velocity, Sprite)] +struct Player; + +#[derive(Component, Default)] +struct Velocity { + x: f32, + y: f32, } fn setup(mut commands: Commands, asset_server: Res) { - commands.spawn(PlayerBundle { - player: Player, - velocity: Velocity { x: 10.0, y: 0.0 }, - sprite: SpriteBundle { - texture: asset_server.load("player.png"), - ..default() - }, - }); + commands.spawn(( + Player, + Velocity { x: 10.0, y: 0.0 }, + Sprite::from_image(asset_server.load("player.png")), + )); } ```