Bevy 的默认字体无法使用吗?

Con*_*han 7 game-development rust bevy

当尝试打印“Hello, world!”时 使用 Bevy 到屏幕上时,文本不会显示,直到我导入第三方字体文件并将其作为资源加载以用作组件TextStyle值中的字体值Text。在使用该字体之前,我没有明确指定该字体;我刚刚使用了来自 的值Default::default(),即WeakHandle<Font>(Id(97059ac6-c9ba-4da9-95b6-bed82c3ce198, 0))。这似乎意味着 Bevy 找到了错误的字体,或者至少是默认情况下无法使用的字体。这更有可能是我的系统提供的字体问题还是 Bevy 默认字体功能的问题?

这是一个最小的可重现示例:

use bevy::prelude::*;

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

fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
    commands.spawn_bundle(UiCameraBundle::default());
    commands.spawn_bundle(TextBundle {
        text: Text::with_section(
            "Hello, world!",
            TextStyle {
                font_size: 60.0,
                color: Color::WHITE,
                font: asset_server.load("FiraSans-Bold.ttf")
            },
            Default::default()
        ),
        ..Default::default()
    });
}
Run Code Online (Sandbox Code Playgroud)

该代码有效。当我将字体值从 更改为 时asset_server.load("FiraSans-Bold.ttf")Default::default()屏幕上没有显示任何内容。

fra*_*pps 9

更新了 Bevy 0.11

Bevy 0.11 现在提供了在此 PR 中实现的默认字体

原始答案(v.0.11之前)

Bevy 目前尚未提供默认字体。

一个封闭的 PR 要添加一个,并且有几个与此相关的开放问题,例如这个那个

也就是说,我认为可以这样做是令人困惑的:

TextStyle {
     font_size: 60.0,
     color: Color::WHITE,
     font: Default::default()
},
Run Code Online (Sandbox Code Playgroud)