我有一个简单的bevy
测试应用程序,它在左上角显示一组立方体和一个 FPS 计数器。3d 场景可以缩放和旋转。
我最近尝试将以下代码升级到bevy = 0.5.0
.
旧代码块 ( bevy = 0.4.0
):
commands.spawn(LightBundle {
transform: Transform::from_translation(Vec3::new(4.0, 8.0, 4.0)),
..Default::default()
})
.spawn(Camera3dBundle {
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 10 as f32 * 1.25))
.looking_at(Vec3::default(), Vec3::unit_y()),
..Default::default()
})
.with(OrbitCamera::new(0.0, 0.0, 10 as f32 * 1.25, Vec3::zero()));
commands.spawn(CameraUiBundle::default())
// texture
.spawn(TextBundle {
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 0.0)),
style: Style {
align_self: AlignSelf::FlexEnd,
..Default::default()
},
text: Text {
value: " FPS:".to_string(),
font: asset_server.load("fonts/FiraSans-Bold.ttf"),
style: TextStyle {
font_size: 20.0,
color: Color::WHITE,
..Default::default()
},
},
..Default::default()
})
.with(FpsText);
我在一个单独的相机中生成它的原因TextBundle
是我希望它是静止的并且不对任何相机变换做出反应。
我试图bevy = 0.5.0
像这样复制这种行为:
commands.spawn_bundle(LightBundle {
transform: Transform::from_translation(Vec3::new(4.0, 8.0, 4.0)),
..Default::default()
});
commands.spawn_bundle(PerspectiveCameraBundle {
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 10 as f32 * 1.25)).looking_at(Vec3::default(), Vec3::Y),
..Default::default()
})
.insert(OrbitCamera::new(0.0, 0.0, 10 as f32 * 1.25, Vec3::ZERO));
commands.spawn_bundle(UiCameraBundle::default())
.insert_bundle(Text2dBundle {
text: Text::with_section(
" FPS:",
TextStyle {
font: asset_server.load("fonts/FiraSans-Bold.ttf"),
font_size: 20.0,
color: Color::WHITE,
},
TextAlignment {
vertical: VerticalAlign::Top,
horizontal: HorizontalAlign::Left,
},
),
..Default::default()
})
.insert(FpsText);
一切都再次按预期工作,除了 FPS 文本不再位于窗口的左上角,现在也像场景中的立方体一样旋转和缩放(我不想发生这种情况)。
如何复制中的旧行为bevy = 0.5.0
,以便将文本呈现为固定覆盖?