4个版本
0.2.0 | 2023年11月10日 |
---|---|
0.1.2 | 2023年10月22日 |
0.1.1 | 2023年10月22日 |
0.1.0 | 2023年10月22日 |
2224 在 游戏开发 中
每月25次下载
29KB
222 行
Bevy UI 3D
此库提供了一种简单的方法来标记游戏对象为UI元素。然后您可以对这些元素编写UI交互查询。
Bevy兼容性
Bevy版本 | bevy_ui_3d版本 |
---|---|
^0.11.3 | ^0.1.0 |
^0.12.0 | ^0.2.0 |
示例
您可以在示例文件夹中查看此crate的实际用法,但为了开始,您可以在设置应用程序和场景时执行以下操作
use bevy::prelude::*;
use bevy_rapier3d::prelude::*;
use bevy_ui_3d::{Interaction3d, Ui3dElementBundle, Ui3dPlugin};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(Ui3dPlugin::default())
.add_startup_system(setup)
.run();
}
fn setup(mut commands: Commands) {
// ... other setup code
// add a 3d gameobject with UI interactions
commands.spawn((
PbrBundle {
mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
transform: Transform::from_xyz(0.0, 0.5, 0.0),
..default()
},
Ui3dElementBundle {
// the collider is needed, since the interaction is detected via raycasting
collider: Collider::cuboid(0.5, 0.5, 0.5),
..default()
},
));
}
配置插件
此插件附带一些配置选项,您可以在启动时设置,因为您可能对所有交互类型不感兴趣,太多的交互可能会很嘈杂。
use bevy::prelude::*;
use bevy_rapier3d::prelude::*;
use bevy_ui_3d::{Interaction3d, Ui3dElementBundle, Ui3dPlugin, PluginConfig};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(Ui3dPlugin {
config: PluginConfig {
hover_enabled: false,
hover_point_enabled: false,
press_enabled: true,
press_point_enabled: false,
}
})
.add_startup_system(setup)
.run();
}
依赖关系
~31MB
~569K SLoC