参考記事
Bevy のコア原則の 1 つは、モジュール化です。Bevy エンジンのすべての機能は、プラグインとして実装されたコードのコレクションです。これには、レンダラなどの内部機能も含まれますが、ゲーム自体もプラグインとして実装されています!これにより、開発者は必要な機能を選択できます。UI は必要ありませんか?UiPluginを登録しないでください。ヘッドレスサーバを構築したいですか?RenderPluginを登録しないでください。
これはまた、好きではないコンポーネントを自由に交換できることを意味します。必要に応じて、独自のUiPluginを作成することも歓迎しますが、役に立つと思う場合は、Bevy に貢献することを検討してください!
Bevy に貢献せずに個別にリリースされたものは、サードパーティのプラグインです。これらは、他の開発者が作成した便利で使いやすいプラグインであり、車輪の再発明を避けるのに役立ちます。これらを使用するには、次の手順に従ってください:
- サードパーティの Bevy プラグインを見つけます(たとえば、アセットページのプラグイン)。
- それを Cargo.toml の [dependencies] にボックスとして追加します。
- crate からコード定義をインポートして、アイテムをワークスペースに追加します。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