#egui #bevy #ime

bevy_egui_ime

这是一个支持bevy_egui使用日文输入的插件

5个版本

0.1.4 2024年7月6日
0.1.3 2024年6月20日
0.1.2 2024年3月27日
0.1.1 2024年1月21日
0.1.0 2024年1月20日

#362 in 游戏开发

Download history 1/week @ 2024-06-07 104/week @ 2024-06-14 45/week @ 2024-06-21 4/week @ 2024-06-28 131/week @ 2024-07-05 5/week @ 2024-07-12 6/week @ 2024-07-26

每月142次下载

MIT许可证

15KB
299

这是一个支持bevy_egui使用日文输入的插件 240120

bevy = "*"
bevy_egui = "*"
bevy_egui_ime = "*"
use bevy_egui::{egui, EguiContexts, EguiPlugin};
use bevy::prelude::*;
use bevy_egui_ime::*;

#[derive(Resource, Default)] 
pub struct MyApp{
    single_text: String,
    multi_text: String,
}

fn main() {
    App::new()   
    .add_plugins(DefaultPlugins)
    .add_plugins(EguiPlugin)
    .add_plugins(ImePlugin) 
    .insert_resource(MyApp::default())
    .add_systems(Startup, setup_system)
    .add_systems(Update, ui_system)      
    .run();
}

pub fn setup_system(
    mut egui_context: EguiContexts,
    mut windows: Query<&mut Window>,
) {
    let mut window = windows.single_mut();
    window.ime_enabled = true;
    let mut txt_font = egui::FontDefinitions::default();
    txt_font.families.get_mut(&egui::FontFamily::Proportional).unwrap().insert(0, "Meiryo".to_owned());
    let fd = egui::FontData::from_static(include_bytes!("C:/Windows/Fonts/Meiryo.ttc"));
    txt_font.font_data.insert("Meiryo".to_owned(), fd);
    egui_context.ctx_mut().set_fonts(txt_font); 
}

pub fn ui_system(
    mut contexts: EguiContexts, 
    mut app: ResMut<MyApp>, 
    mut ime: ResMut<ImeManager>, 
) {
    let ctx = contexts.ctx_mut();
    egui::CentralPanel::default().show(ctx, |ui| {
        let _teo_s = ime.text_edit_singleline(&mut app.single_text, 400.0, ui, ctx);
        let _teo_m = ime.text_edit_multiline(&mut app.multi_text, 400.0, ui, ctx);
    });
}

依赖关系

~26–60MB
~1M SLoC