3 releases
0.1.2 | Jan 12, 2024 |
---|---|
0.1.1 | Aug 27, 2023 |
0.1.0 | Aug 27, 2023 |
#1451 in Game dev
30KB
149 lines
🎥 Bevy Touch Camera
A plugin for touch based camera movement. Supports one finger drag to pan and two finger pinch to zoom.
📄 Usage
Add TouchCameraPlugin
to your app.
App::new().add_plugins((
DefaultPlugins,
TouchCameraPlugin::default()
)).run();
You can configure some of the parameters of the plugin. Changing configuration at runtime is currently not supported. [^1]
let config = TouchCameraConfig {
drag_sensitivity: 2.,
touch_time_min: 0.2,
..Default::default()
};
app.add_plugins((TouchCameraPlugin {config}))
The plugin will try to attach itself to a camera. This can be done in either one of the following ways:
- Create a single
Camera
component before thePostUpdate
schedule. The plugin will attach itself automatically to it. - Manually attach a
TouchCameraTag
component to the camera entity you want to be handled by the plugin. Useful if you have multiple active cameras or if method 1) is not possible.
Limitations
- Plugin will always try to update the projection and the transform of the Camera. A separate mode is planned where updates are only written to a component so that the user can read them and mix them with other custom logic before applying to the camera.
- Only viewport based panning and scaling is supported currently. That means that your finger won't stay in exactly the same position of the world view like in common implementations.
🔗 Bevy compatibility
bevy_touch_camera | bevy |
---|---|
0.1 | 0.11 |
0.1.2 | 0.12 |
🪪 License
Either one:
[^1]: TODO maybe it is, need to test it and update example
Dependencies
~38–72MB
~1.5M SLoC