3个版本 (破坏性更新)
0.3.0 | 2024年7月6日 |
---|---|
0.2.0 | 2024年3月31日 |
0.1.0 | 2024年3月30日 |
#512 in 游戏开发
每月668次下载
390KB
601 行
Bevy Blur Regions
一个用于选择性地模糊屏幕区域的Bevy插件。
使用方法
添加插件
use bevy::prelude::*;
use bevy_blur_regions::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(BlurRegionsPlugin::default())
.run();
}
将BlurRegionsCamera
组件添加到输出应该被模糊的3D相机上
commands.spawn((
BlurRegionsCamera::default(),
Camera3dBundle::default(),
));
当使用Bevy UI时,将BlurRegion
标记组件添加到任何应该有模糊背景的Bevy UI节点上
commands.spawn((
BlurRegion,
NodeBundle {
style: Style {
width: Val::Percent(50.0),
height: Val::Percent(50.0),
left: Val::Percent(25.0),
top: Val::Percent(25.0),
..default()
},
..default()
},
));
当使用egui时,启用egui
功能,然后在将内容添加到egui窗口时使用show_with_blur
函数而不是show
fn draw_ui(
mut contexts: EguiContexts,
mut blur_region_cameras: Query<&mut bevy_blur_regions::DefaultBlurRegionsCamera>)
{
let mut blur_regions = blur_region_cameras.single_mut();
let frame = egui::Frame::window(&contexts.ctx_mut().style())
.fill(egui::Color32::from_rgba_premultiplied(27, 27, 27, 100))
.rounding(0.0)
.shadow(egui::epaint::Shadow::NONE);
egui::Window::new("Blurry Window")
.frame(frame)
.show_with_blur(&mut blur_regions, contexts.ctx_mut(), |ui| {
ui.label("This window has a nice blurry background.")
});
}
对于其他用例,可以在每一帧调用即时模式模糊API
fn update(mut blur_region_cameras: Query<&mut BlurRegionsCamera>) {
let Ok(mut blur_regions) = blur_region_cameras.get_single_mut() else {
return;
};
blur_regions.blur(Rect::from_center_size(vec2(100.0, 100.0), vec2(200.0, 200.0)));
}
请参阅示例以了解上述所有功能的实际实现。
注意事项
模糊区域的数量有限
屏幕上同时存在的模糊区域数量限制为20。
兼容性
bevy_blur_regions | bevy | bevy_egui |
---|---|---|
0.3.0 | 0.14 | 0.28 |
0.2.0 | 0.13 | 0.26 |
0.1.0 | 0.13 | N/A |
许可证
此仓库中的所有代码都根据您的选择采用双重许可
MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
这意味着您可以选择您喜欢的许可证。
依赖项
~33–71MB
~1M SLoC