@@ -1585,6 +1585,45 @@ impl<'w, 's, D: QueryData, F: QueryFilter> Query<'w, 's, D, F> {
1585
1585
/// are dropped, non-archetypal filters like `Added` and `Changed` will no be respected.
1586
1586
/// To maintain or change filter terms see `Self::join_filtered`.
1587
1587
///
1588
+ /// ## Example
1589
+ ///
1590
+ /// ```rust
1591
+ /// # use bevy_ecs::prelude::*;
1592
+ /// # use bevy_ecs::system::QueryLens;
1593
+ /// #
1594
+ /// # #[derive(Component)]
1595
+ /// # struct Transform;
1596
+ /// #
1597
+ /// # #[derive(Component)]
1598
+ /// # struct Player;
1599
+ /// #
1600
+ /// # #[derive(Component)]
1601
+ /// # struct Enemy;
1602
+ /// #
1603
+ /// # let mut world = World::default();
1604
+ /// # world.spawn((Transform, Player));
1605
+ /// # world.spawn((Transform, Enemy));
1606
+ ///
1607
+ /// fn system(
1608
+ /// mut transforms: Query<&Transform>,
1609
+ /// mut players: Query<&Player>,
1610
+ /// mut enemies: Query<&Enemy>
1611
+ /// ) {
1612
+ /// let mut players_transforms: QueryLens<(&Transform, &Player)> = transforms.join(&mut players);
1613
+ /// for (transform, player) in &players_transforms.query() {
1614
+ /// // do something with a and b
1615
+ /// }
1616
+ ///
1617
+ /// let mut enemies_transforms: QueryLens<(&Transform, &Enemy)> = transforms.join(&mut enemies);
1618
+ /// for (transform, enemy) in &enemies_transforms.query() {
1619
+ /// // do something with a and b
1620
+ /// }
1621
+ /// }
1622
+ ///
1623
+ /// # let mut schedule = Schedule::default();
1624
+ /// # schedule.add_systems(system);
1625
+ /// # schedule.run(&mut world);
1626
+ /// ```
1588
1627
/// ## Panics
1589
1628
///
1590
1629
/// This will panic if `NewD` is not a subset of the union of the original fetch `Q` and `OtherD`.
0 commit comments