banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、咖啡、游戏(MMORPG、FPS、Minecraft、Warframe) 兴趣方向:Rust、区块链、网络安全、量子信息(量子计算)、游戏设计与开发
bilibili
steam
email
github

[0x05]Bevy-Plugin

参考文章
Bevy 的核心原则之一是模块化。所有 Bevy 引擎功能都作为插件 --- 代码集合实现,用于修改应用程序。这包括渲染器等内部功能,但游戏本身也是作为插件实现的!这使开发人员能够选择他们想要的功能。不需要 UI?不要注册 UiPlugin。想要构建无头服务器?不要注册 RenderPlugin
这也意味着您可以自由更换任何您不喜欢的组件。如果你觉得有必要,欢迎你建立自己的 UiPlugin,但如果你认为它有用,可以考虑将其贡献给 Bevy
那些没有贡献给 Bevy 而是单独发布的是第三方插件。这些是有用且易于使用的插件,由其他开发人员创建,可以帮助您避免重新发明轮子。要使用它们,您所要做的就是:

  1. 查找第三方 Bevy 插件(例如资产页面上的插件)。
  2. 将其作为板条箱添加到您的板条箱中。Cargo.toml [dependencies]
  3. 从 crate 导入代码定义 (like ) 以将项添加到工作区。use third_party::prelude::*;
  4. 将插件添加到您的应用(例如 )。app.add_plugins (third_party_plugin)

但是,大多数开发人员不需要自定义体验,只需要轻松的 “完整引擎” 体验。为此,Bevy 提供了一组 DefaultPlugins

use bevy::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .run();
}
cargo run

image.png
接下来,自己实现一个插件,并打印 "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

image.png

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。