#camera-control #camera #bevy #3d #gamedev #game-engine

bevy_flycam

Bevy 游戏引擎的基本第一人称飞行相机

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游戏开发

Download history 323/week @ 2024-04-29 187/week @ 2024-05-06 215/week @ 2024-05-13 259/week @ 2024-05-20 207/week @ 2024-05-27 236/week @ 2024-06-03 133/week @ 2024-06-10 224/week @ 2024-06-17 229/week @ 2024-06-24 125/week @ 2024-07-01 431/week @ 2024-07-08 529/week @ 2024-07-15 295/week @ 2024-07-22 310/week @ 2024-07-29 345/week @ 2024-08-05 312/week @ 2024-08-12

每月 1,300 次下载
用于 2 crates

ISC 许可证

29KB
199

bevy_flycam

Crates.io Crates.io docs.rs

Bevy 0.14 的基本第一人称飞行相机

控制

  • WASD 用于水平移动
  • 空格键用于上升
  • 左 Shift 键用于下降
  • ESC 键用于抓取/释放鼠标指针。

比较

bevy_fly_camera 有一些显著的不同...

  • 没有线性插值
  • 鼠标指针抓取
  • 代码更短
  • 单行设置
  • 稍微快一点?

使用方法

  1. 添加到 Cargo.toml 或将 lib.rs 复制到您的文件中

    [dependencies]
    bevy = "0.14"
    bevy_flycam = "*"
    

    [dependencies]
    bevy = "0.14"
    bevy_flycam = { git = "https://github.com/sburris0/bevy_flycam" }
    
  2. 包含预定义

    use bevy_flycam::prelude::*;
    
  3. 添加 PlayerPlugin

    #[bevy_main]
    fn main() {
        App::new()
            .add_plugins(DefaultPlugins)
            .add_plugins(PlayerPlugin)
            .run();
    }
    

请注意,PlayerPlugin 会为您生成相机。有关如何使用现有相机的详细信息,请参阅 使用自己的相机

或者,您可以查看位于示例文件夹中的示例 basic.rsscroll.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 tracking

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