bevy-orbit-camera 0.2.1

A tiny Bevy plugin for an orbit camera controller.
Documentation
pub struct OrbitCameraPlugin;
use crate::control::*;
use crate::transform::*;
use bevy::prelude::*;

impl Plugin for OrbitCameraPlugin {
    fn build(&self, app: &mut App) {
        app.add_systems(Update, control_system)
            .add_systems(Update, transform_system);
    }
}

#[derive(Bundle)]
pub struct OrbitCameraBundle {
    controller: Controller,
    look_transform: LookTransform,
    transform: Transform,
}

impl OrbitCameraBundle {
    pub fn new(controller: Controller, eye: Vec3, target: Vec3, up: Vec3) -> Self {
        Self {
            controller,
            look_transform: LookTransform::new(eye, target, up),
            transform: Transform::from_translation(eye).looking_at(target, up),
        }
    }
}