#camera #bevy #3d #gamedev #flycam

bevy-debug-camera

一个简单的相机插件,非常适合3D bevy游戏的调试

4个版本 (2个破坏性更新)

0.3.0 2023年8月26日
0.2.0 2023年8月26日
0.1.1 2023年2月12日
0.1.0 2023年2月12日

#1845 in 游戏开发

每月24次下载

MIT许可证

31KB
297

Bevy Debug Camera

Crates.io MIT CircleCI Crates.io

这个库提供了一种简单轻量级的方法,可以在调试3D bevy游戏时拥有“飞行相机”风格的相机。它是可配置的,让您能够轻松地使用组件和资源在本地为相机启用系统或全局启用所有相机。

Bevy兼容性

Bevy版本 bevy-debug-camera版本
0.9.1 ^0.1.0
^0.10.0 ^0.2.0
^0.11.0 ^0.3.0

示例

您可以在示例文件夹中查看此crate的实际应用,但要开始,您可以在设置应用程序时执行以下操作

use bevy::prelude::*;
use bevy_debug_camera::{DebugCamera, DebugCameraPlugin};

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

fn setup(mut commands: Commands) {
    // ... other setup code
    commands
        .spawn(Camera3dBundle::default())
        .insert(DebugCamera {
            position: Vec3::new(-5., 1., 0.),
            ..default()
        });
}

绑定

默认绑定如下

鼠标 + 键盘

动作 绑定
向前移动 W
向后移动 S
向左移动 A
向右移动 D
向上移动 Lshift
向下移动 Space
偏航 鼠标X
俯仰 鼠标Y
向左翻滚 Q
向右翻滚 E

控制器

动作 绑定
前进/后退 Lstick Y
左右移动 Lstick X
向上移动 RTrigger
向下移动 LTrigger
偏航 Rstick X
俯仰 Lstick Y
向左翻滚 LBumper
向右翻滚 RBumper

配置插件

该插件提供了一些配置选项,您可以在启动时设置以自定义正在使用的相机的行为。您可以配置

  • 键盘绑定
  • 游戏手柄绑定
  • 接受的输入

所有这些自定义都公开为资源,这些资源在运行时会持续读取,并且可以在运行时修改。下面是一个使用所有配置选项的示例,以及configuration示例

use bevy::prelude::*;
use bevy_debug_camera::{
    DebugCamera, DebugCameraPlugin, GamepadBindings, KeyboardBindings, DebugCameraActive,
};

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        // Each field in `DebugCameraPlugin` can be set directly or picked up from
        // default.
        .add_plugin(DebugCameraPlugin {
            gamepad_bindings: GamepadBindings {
                // Overrides only the roll buttons
                roll_left: GamepadButtonType::West,
                roll_right: GamepadButtonType::East,
                ..default()
            },
            keyboard_bindings: KeyboardBindings {
                // Override WASD with arrows
                fwd: KeyCode::Up,
                bwd: KeyCode::Down,
                left: KeyCode::Left,
                right: KeyCode::Right,
                ..default()
            },
            debug_camera_active: DebugCameraActive {
                // Disable keyboard + mouse only
                keymouse: false,
                ..default()
            },
        })
        .add_startup_system(setup)
        .run();
}

fn setup() {
    // Setup logic here...
}

依赖关系

~18-28MB
~417K SLoC