Reference Article
Bevy 的核心原則之一是模塊化。所有 Bevy 引擎功能都作為插件 --- 代碼集合實現,用於修改應用程序。這包括渲染器等內部功能,但遊戲本身也是作為插件實現的!這使開發人員能夠選擇他們想要的功能。不需要 UI?不要註冊 UiPlugin。想要構建無頭服務器?不要註冊 RenderPlugin。
這也意味著您可以自由更換任何您不喜歡的組件。如果你覺得有必要,歡迎你建立自己的 UiPlugin,但如果你認為它有用,可以考慮將其貢獻給 Bevy!
那些沒有貢獻給 Bevy 而是單獨發布的是第三方插件。這些是有用且易於使用的插件,由其他開發人員創建,可以幫助您避免重新發明輪子。要使用它們,您所要做的就是:
- 查找第三方 Bevy 插件(例如資產頁面上的插件)。
- 將其作為板條箱添加到您的板條箱中。Cargo.toml [dependencies]
- 從 crate 導入代碼定義 (like ) 以將項添加到工作區。use third_party::prelude::*;
- 將插件添加到您的應用(例如 )。app.add_plugins (third_party_plugin)
但是,大多數開發人員不需要自定義體驗,只需要輕鬆的 “完整引擎” 體驗。為此,Bevy 提供了一組 DefaultPlugins。
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.run();
}
cargo run
接下來,自己實現一個插件,並打印 "Hello World!"
use bevy::prelude::*;
//為了更好地組織,讓我們將所有“hello”邏輯移動到插件中。要創建一個插件,我們只需要實現插件接口。將以下代碼添加到您的文件中:main.rs
pub struct HelloPlugin;
impl Plugin for HelloPlugin {
fn build(&self, app: &mut App) {
app.add_systems(Startup, hello_world);
}
}
fn main() {
App::new()
.add_plugins((DefaultPlugins, HelloPlugin))
.run();
}
fn hello_world() {
println!("HelloWorld!")
}
cargo run