11 个不稳定版本 (3 个破坏性更新)

新增 0.3.0 2024 年 8 月 7 日
0.2.0 2024 年 7 月 23 日
0.1.2 2024 年 7 月 12 日
0.0.5 2024 年 7 月 1 日
0.0.4 2024 年 6 月 16 日

#486游戏开发

Download history 339/week @ 2024-06-10 45/week @ 2024-06-17 297/week @ 2024-07-01 230/week @ 2024-07-08 13/week @ 2024-07-15 119/week @ 2024-07-22 26/week @ 2024-07-29

每月 419 次下载

MIT/Apache 许可

34KB
297 行代码

bevy_text_edit

crates.io docs.rs dependency status pipeline status

快速入门

插件

将插件 TextEditPlugin 添加到应用中并定义它将运行的哪些状态

#[derive(Clone, Debug, Default, Eq, PartialEq, Hash, States)]
enum GameState {
    #[default]
    Menu,
}

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        // Add the plugin
        .add_plugins(TextEditPlugin::new(vec![GameState::Menu]))
        .run;
}

如果您不关心游戏状态且希望始终运行输入文本,请使用 TextEditPluginNoState

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        // Add the plugin
        .add_plugins(TextEditPluginNoState)
        .add_systems(Startup, setup)
        .run();
}

组件

将组件 TextEditableInteraction 插入任何需要可编辑的文本实体中

commands.spawn((
    TextEditable::default(), // Mark text is editable
    Interaction::None,       // Mark entity is interactable
    TextBundle::from_section(
        "Input Text 1",
        TextStyle::default(),
    ),
));

只有通过点击获得焦点的文本才能接收键盘输入。

还可以通过 filter_infilter_out 属性限制允许输入的字符。支持正则表达式

commands.spawn((
    TextEditable {
        filter_in: vec!["[0-9]".into(), " ".into()], // Only allow number and space
        filter_out: vec!["5".into()],                // Ignore number 5
    },
    Interaction::None,
    TextBundle::from_section(
        "Input Text 1",
        TextStyle::default(),
    ),
));

许可证

请参阅 LICENSE.

兼容 Bevy 版本

bevy bevy_text_edit
0.14 0.1-0.3,分支 master
0.13 0.0.1-0.0.5

依赖项

~39–76MB
~1.5M SLoC