使用Rust和Bevy 0.10.1 -我期待文本显示到屏幕上,但我什么也没看到

mo49yndu  于 2023-05-22  发布在  其他
关注(0)|答案(1)|浏览(225)

我尝试使用Rust和bevy = 0.10.1将文本“Foo”写入一个空白窗口。从0.10版开始,更新衍生实体的文本的方法是使用提交给TextBundletext: Text::from_selection(value, style),如下所示:https://docs.rs/bevy/latest/bevy/prelude/struct.TextBundle.html。但是,屏幕上不会绘制任何内容。

use bevy::math::Vec3;
use bevy::prelude::*;

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

fn write_text(mut commands: Commands,) {     
    commands.spawn(Camera3dBundle::default());

    commands.spawn( TextBundle {
        
        text: Text::from_section("Foo", TextStyle {
        color: Color::WHITE,
        ..default()
        }),
        transform: Transform::from_translation(Vec3::new(4., 0., 4.)),
        ..default()

    });

}
rekjcdws

rekjcdws1#

您需要指定字体。在项目的根目录下创建包含字体(.ttf文件)的assets文件夹。例如,我将FiraSans-Bold.ttf文件放在assets/fonts中。write_text系统变为:

fn write_text(mut commands: Commands, asset_server: Res<AssetServer>) {
    commands.spawn(Camera3dBundle::default());
    commands.spawn(TextBundle {
        text: Text::from_section(
            "Foo",
            TextStyle {
                color: Color::WHITE,
                font: asset_server.load("fonts/FiraSans-Bold.ttf"),
                ..default()
            },
        ),
        transform: Transform::from_translation(Vec3::new(4., 0., 4.)),
        ..default()
    });
}

相关问题