AnvilKit

anvilkit-camera

相机系统 — 控制器、特效、万向锁保护

anvilkit-camera 提供灵活的相机控制系统。

CameraController

use anvilkit_camera::controller::CameraController;

let controller = CameraController {
    mode: CameraMode::FirstPerson,
    move_speed: 10.0,
    look_sensitivity: 0.003,
    base_fov: 70.0, // 基准视场角(度)
    ..Default::default()
};

相机模式

模式说明
FirstPerson第一人称——相机跟随玩家视角
ThirdPerson第三人称——相机跟随目标,带偏移
Orbit轨道模式——围绕目标旋转

FOV 效果

use anvilkit_camera::effects::*;

// 冲刺时增加 FOV
fn sprint_fov(
    mut camera: ResMut<CameraController>,
    input: Res<InputState>,
) {
    if input.is_key_held(KeyCode::ShiftLeft) {
        camera.fov_offset = 10.0; // 基于 base_fov 的偏移
    } else {
        camera.fov_offset = 0.0;
    }
}

万向锁保护

第三人称 look-at 自动处理万向锁问题——当相机接近目标正上方或正下方时,使用替代 up 向量避免翻转。

目录