5个版本 (3个重大更改)
新功能 0.4.0 | 2024年8月12日 |
---|---|
0.3.1 | 2024年7月31日 |
0.3.0 | 2024年7月31日 |
0.2.0 | 2024年7月26日 |
0.1.0 | 2024年7月26日 |
#351 在 游戏开发
每月484次下载
79KB
1.5K SLoC
Bevy Blendy Cameras
摘要
类似于Blender视口相机控制的编辑器式相机控制和功能。
功能
- 带有“缩放到鼠标位置”和“自动深度”选项的平移/轨道/缩放相机控制
- 飞行相机控制
- 移动到视图点(顶部、底部、前面、后面、左侧、右侧)
- 将实体框架到视图中
- 在轨道和飞行旋转期间捕获光标或将光标包裹在视口中
- Egui支持
待办事项
- 干净代码
- 使飞行模式与正交投影一起工作
- 支持平移运动的“自动深度”。这样,在平移过程中,鼠标光标下的射线投射始终保持在鼠标光标下方,如果没有捕获/包裹光标。
- 使用于“自动深度”的射线投射尊重材质背面裁剪设置。也许可选地,因为这可能与用户用于其他用途的其他射线投射选项冲突。
默认控制
OrbitCameraController
- 中鼠标拖动 - 轨道
- Shift + 中鼠标拖动 - 平移
- 滚动轮 - 缩放
FlyCameraController
- 中鼠标拖动 - 旋转
- 滚动轮 - 改变移动速度
- E - 向前移动(缩放)
- D - 向后移动(取消缩放)
- S - 向左移动
- F - 向右移动
- W - 向下移动
- R - 向上移动
快速入门
添加插件
.add_plugins(BlendyCamerasPlugin)
将控制器组件添加到相机
commands.spawn((
Camera3dBundle {
transform: Transform::from_translation(Vec3::new(0.0, 1.5, 5.0)),
..default()
},
OrbitCameraController::default(),
FlyCameraController {
is_enabled: false,
..default()
},
));
查看基本示例以查看更多功能。
Cargo功能
bevy_egui
(可选):当egui
有焦点时忽略输入
版本兼容性
bevy | bevy_blendy_cameras |
---|---|
0.14 | 0.2-0.3 |
0.13 | 0.1 |
致谢
- bevy_panorbit_camera:此插件的代码基于此。
免责声明
我对Rust和Bevy都有些陌生,并且此插件处于早期阶段。欢迎帮助。
依赖关系
~37–74MB
~1.5M SLoC