3

这是一个非常简单的问题。我已经重写了我的代码以使用新版本的 bevy 附带的语法和其他更改。

编译时似乎一切正常,除了实体的消失。

我在上述实体中生成,例如:

commands.spawn_bundle(PbrBundle {
            mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
            material: builder_texture.clone(),
            transform: Transform::from_matrix(Mat4::from_scale_rotation_translation(
                Vec3::splat(0.75),
                Quat::from_rotation_x(0.0),
                Vec3::new(0.0, 0.0, 0.0),
            )),
                ..Default::default()
        })
        .insert(controll::BuilderIndicator);

但我无法像这样消失它:

fn despawn(
    mut entity: Query<(Entity, controll::BuilderIndicator), With<controll::BuilderIndicator>>,
    mut commands: Commands,
) {
    for (entity, example) in entity.iter_mut() {
        commands.despawn(entity);
    }
}

它返回:

error[E0599]: no method named `despawn` found for struct `bevy::prelude::Commands<'_>` in the current scope
   --> src/controll.rs:120:26
    |
120 |                 commands.despawn(entity);
    |                          ^^^^^^^ help: there is an associated function with a similar name: `spawn`

error: aborting due to previous error

我必须做些什么才能让它发挥作用?

4

1 回答 1

7

似乎某些方法已移至EntityCommands。所以你必须这样做: commands.entity(entity).despawn();

我还没有测试。

于 2021-04-07T17:17:12.370 回答