21 个版本 (13 个破坏性版本)
0.14.1 | 2024 年 7 月 18 日 |
---|---|
0.13.0 | 2024 年 3 月 7 日 |
0.12.0 | 2023 年 11 月 5 日 |
0.10.1 | 2023 年 4 月 10 日 |
0.4.0 | 2021 年 2 月 15 日 |
#39 在 游戏开发
每月 1,300 次下载
用于 2 crates
29KB
199 行
bevy_flycam
Bevy 0.14 的基本第一人称飞行相机
控制
- WASD 用于水平移动
- 空格键用于上升
- 左 Shift 键用于下降
- ESC 键用于抓取/释放鼠标指针。
比较
与 bevy_fly_camera 有一些显著的不同...
- 没有线性插值
- 鼠标指针抓取
- 代码更短
- 单行设置
- 稍微快一点?
使用方法
-
添加到
Cargo.toml
或将lib.rs
复制到您的文件中[dependencies] bevy = "0.14" bevy_flycam = "*"
或
[dependencies] bevy = "0.14" bevy_flycam = { git = "https://github.com/sburris0/bevy_flycam" }
-
包含预定义
use bevy_flycam::prelude::*;
-
添加
PlayerPlugin
#[bevy_main] fn main() { App::new() .add_plugins(DefaultPlugins) .add_plugins(PlayerPlugin) .run(); }
请注意,PlayerPlugin
会为您生成相机。有关如何使用现有相机的详细信息,请参阅 使用自己的相机。
或者,您可以查看位于示例文件夹中的示例 basic.rs
或 scroll.rs
。您可以通过克隆此存储库并运行以下命令来运行示例: cargo run --release --example basic
自定义
移动和键绑定
要修改玩家移动速度或鼠标灵敏度,请将其添加为资源。
用于移动相机的键绑定也是如此。
#[bevy_main]
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(PlayerPlugin)
.insert_resource(MovementSettings {
sensitivity: 0.00015, // default: 0.00012
speed: 12.0, // default: 12.0
})
.insert_resource(KeyBindings {
move_ascend: KeyCode::E,
move_descend: KeyCode::Q,
..Default::default()
})
.run();
}
使用自己的相机
如果您想使用自己的相机,也可以使用 NoCameraPlayerPlugin
。请确保将 FlyCam
组件添加到您的相机中,否则此插件不知道要移动什么。
#[bevy_main]
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(NoCameraPlayerPlugin)
.add_systems(Startup, setup)
.run();
}
fn setup(mut commands: Commands) {
commands.spawn((
Camera3dBundle {
transform: Transform::from_xyz(0.0, 2.0, 0.5),
..default()
},
FlyCam
));
}
支持
bevy_flycam 的包版本遵循 bevy 的次要版本,如下所示
bevy | bevy_flycam |
---|---|
0.14.0 |
0.14.0 |
0.13.0 |
0.13.0 |
0.12.0 |
0.12.0 |
0.11.0 |
0.11.0 |
0.10.1 |
0.10.1 |
贡献
PR 非常受欢迎。
依赖关系
~35–72MB
~1.5M SLoC