3个版本 (破坏性更新)
0.3.0 | 2024年7月15日 |
---|---|
0.2.0 | 2024年7月2日 |
0.1.0 | 2024年7月1日 |
#1298 in 游戏开发
每月157次下载
300KB
119 行
bevy_anyhow_alert
此crate提供了一种扩展trait,用于帮助在Bevy中进行系统和应用级别的错误管理。使用bevy_ui_mod_alerts
的re-export进行轻度配置。主要好处:您的系统可以返回Result
(甚至Result<T, Vec<E>>
)!
如何使用
编写您的系统时,返回两种接受类型之一
Result<T, E>
bevy_anyhow_alert::ResultVec<T, E>
:是Result<T, Vec<Error>>
的别名
然后调用my_system.anyhow_alert()
或my_system.anyhow_alerts
!当结果为Err
时,您将看到Toast UI元素出现(假设有一个相机)。
let mut app = App::new();
// ...
app.add_system(fire_error.anyhow_alert());
// ..
app.run();
您可以在整个应用程序中定义任何类型的错误。它们必须实现Debug
和Display
,如果您在错误类型上派生thiserror::Error
,则尤其容易。
#[derive(Debug, Error)]
#[error("testing!")]
pub struct MyError;
fn fire_error(inputs: Res<ButtonInput<KeyCode>>) -> anyhow::Result<()> {
if inputs.just_pressed(KeyCode::Space) {
Err(anyhow::Error::new(MyError))
} else {
Ok(())
}
}
依赖关系
~38–74MB
~1.5M SLoC