Rust Bevy mod_picking_change高亮显示默认值



我不熟悉更改默认值的一般方法,深入研究bevy_mod_picking库的源代码并没有为我(一个新手(找到任何明显的答案。

我想更改拾取/选定网格的高亮显示颜色。我走了这么远:

commands.spawn_bundle(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Plane { size: set_size*1.2 })),
material: transparent_material,
transform: Transform::from_xyz(0.0, 1.0, 0.0),
..default()
}).insert_bundle(PickableBundle{
highlight: highlight::Highlight {
// how to change this to a transparent colour?
..default()
},
..default()
});

查看highlighting.rsbevy_mod_picking库,我看到这一行:

/// Marker component to flag an entity as highlightable
#[derive(Component, Clone, Debug, Default)]
pub struct Highlight;

然而,单词";突出显示";没有出现在任何进一步的代码中,这让我想知道下一步该怎么修改颜色。下面定义了一些默认颜色,但它们使用了不同的结构,如Highlightable,所以在那之后我很失落。我想要一个透明的颜色,因为我不想在我的用例中看到突出显示。

最好能得到以上的答案+提供一些对这种编码模式的参考,以供将来参考。

似乎在我问完这里之后,不知怎么的,我通过reddit帖子神奇地得到了答案。

这是我想要的修改代码:

commands.spawn_bundle(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Plane { size: set_size*1.2 })),
material: transparent_material.clone(),
transform: Transform::from_xyz(0.0, 1.0, 0.0),
..default()
}).insert_bundle(PickableBundle{

highlight: highlight::Highlight {

..default()
},
..default()
}).insert(Highlighting{
initial: transparent_material.clone(),
hovered: Some(transparent_material.clone()),
pressed: Some(transparent_material.clone()),
selected:Some(transparent_material.clone()),
});

当然,我什么都没学到,所以如果出现一个有解释的问题,我会接受这个问题。

最新更新