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 向量避免翻转。