参考記事
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