我怎样才能在用 commands.spawn_bundle() 产生的 bevy 0.5.0 中消除一个实体
How can I despawn an entity in bevy 0.5.0 that was spawned with commands.spawn_bundle()
这是一个很简单的问题。
我已经重写了我的代码以使用新版本的 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);
}
}
它returns:
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
我需要做什么才能让它发挥作用?
似乎某些方法已移至 EntityCommands。
所以你必须这样做:
commands.entity(entity).despawn();
我还没有测试。
这是一个很简单的问题。 我已经重写了我的代码以使用新版本的 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);
}
}
它returns:
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
我需要做什么才能让它发挥作用?
似乎某些方法已移至 EntityCommands。
所以你必须这样做:
commands.entity(entity).despawn();
我还没有测试。