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 在 游戏开发
每月 419 次下载
34KB
297 行代码
bevy_text_edit
快速入门
插件
将插件 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();
}
组件
将组件 TextEditable
和 Interaction
插入任何需要可编辑的文本实体中
commands.spawn((
TextEditable::default(), // Mark text is editable
Interaction::None, // Mark entity is interactable
TextBundle::from_section(
"Input Text 1",
TextStyle::default(),
),
));
只有通过点击获得焦点的文本才能接收键盘输入。
还可以通过 filter_in
和 filter_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