ThirdPersonCamera

Struct ThirdPersonCamera 

Source
pub struct ThirdPersonCamera {
Show 19 fields pub aim_enabled: bool, pub aim_button: MouseButton, pub aim_speed: f32, pub aim_zoom: f32, pub cursor_lock_toggle_enabled: bool, pub cursor_lock_active: bool, pub cursor_lock_key: KeyCode, pub gamepad_settings: CustomGamepadSettings, pub sensitivity: Vec2, pub mouse_orbit_button_enabled: bool, pub mouse_orbit_button: MouseButton, pub offset_enabled: bool, pub offset: Offset, pub offset_toggle_enabled: bool, pub offset_toggle_key: KeyCode, pub offset_toggle_speed: f32, pub zoom_enabled: bool, pub zoom: Zoom, pub zoom_sensitivity: f32,
}
Expand description

§Examples

use bevy::prelude::*;
use bevy_third_person_camera::ThirdPersonCamera;
fn spawn_camera(mut commands: Commands) {
    commands.spawn((
        ThirdPersonCamera::default(),
        Camera3dBundle::default()
    ));
}

Fields§

§aim_enabled: bool

Flag to indicate if the aim functionality is turned on. Default is false

§aim_button: MouseButton

The mouse aim button binding. Default is MouseButton::Right

§aim_speed: f32

The speed at which aiming occurs. Default is 3.0

§aim_zoom: f32

The zoom level of the aim zooming functionality. This value should be >= 0.l, and <= Zoom.min. The smaller the value, the greater the zoom distance. 0.1 would essentially look like ‘first person’. Default is 0.7

§cursor_lock_toggle_enabled: bool

Flag to indicate if the cursor lock toggle functionality is turned on. When enabled and the cursor lock is NOT active, the mouse can freely move about the window without the camera’s transform changing. Example usage: Browsing a character inventory without moving the camera. Default is true

§cursor_lock_active: bool

Flag to indicate if the cursor is in a locked state or not. Default is true

§cursor_lock_key: KeyCode

The cursor lock toggle key binding. Default is KeyCode::Space

§gamepad_settings: CustomGamepadSettings

Custom gamepad settings.

§sensitivity: Vec2

Mouse x/y sensitivity Default is Vec2::new(1.0, 1.0)

§mouse_orbit_button_enabled: bool

Flag to indicate if the orbiting functionality is controlled when a mouse button is being pressed. Default is false

§mouse_orbit_button: MouseButton

The mouse button binding to control when the orbiting occurs. Default is MouseButton:Middle

§offset_enabled: bool

Flag to indicate whether there is a camera offset applied or not. Default is false

§offset: Offset

The camera offset relative to the camera target. Offset is a tuple. The first value corresponds to the x offset, the second value to the y offset. Example: offset: Offset::new(<my_x_value>, <my_y_value>); Default is Offset::new(0.5, 0.4)

§offset_toggle_enabled: bool

Inverts the x value of the offset. Example: If the x offset is set to 5.0, then the x offset will be inverted to -5.0 if this is set to true. Default is false

§offset_toggle_key: KeyCode

The key binding of the offset toggle Default is KeyCode::KeyE

§offset_toggle_speed: f32

The speed at which the x offset will transition. Default is 5.0

§zoom_enabled: bool

Flag to indicate whether a camera zoom is applied or not. Default is true

§zoom: Zoom

The min/max bounds of the camera. This is different than the aim zoom. This zoom is the position the camera stays in relation to the camera target. Zoom is a tuple. The first value is the minimum zoom. The smaller the value, the closer the camera can come to it’s target. The second value is the maximum zoom. The greater the maximum zoom, the farther away the camera can go from it’s target. The zoom is adjusted using the scroll wheel. Default is Zoom::new(1.5, 3.0);

§zoom_sensitivity: f32

The speed at which the scroll wheel zooms in or out. Default is 1.0

Trait Implementations§

Source§

impl Component for ThirdPersonCamera
where Self: Send + Sync + 'static,

Source§

const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table

A constant indicating the storage type used for this component.
Source§

type Mutability = Mutable

A marker type to assist Bevy with determining if this component is mutable, or immutable. Mutable components will have Component<Mutability = Mutable>, while immutable components will instead have Component<Mutability = Immutable>. Read more
Source§

fn register_required_components( requiree: ComponentId, components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, inheritance_depth: u16, recursion_check_stack: &mut Vec<ComponentId>, )

Registers required components.
Source§

fn clone_behavior() -> ComponentCloneBehavior

Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§

fn register_component_hooks(hooks: &mut ComponentHooks)

👎Deprecated since 0.16.0: Use the individual hook methods instead (e.g., Component::on_add, etc.)
Called when registering this component, allowing mutable access to its ComponentHooks.
Source§

fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_add ComponentHook for this Component if one is defined.
Source§

fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_insert ComponentHook for this Component if one is defined.
Source§

fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_replace ComponentHook for this Component if one is defined.
Source§

fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_remove ComponentHook for this Component if one is defined.
Source§

fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_despawn ComponentHook for this Component if one is defined.
Source§

fn map_entities<E>(_this: &mut Self, _mapper: &mut E)
where E: EntityMapper,

Maps the entities on this component using the given EntityMapper. This is used to remap entities in contexts like scenes and entity cloning. When deriving Component, this is populated by annotating fields containing entities with #[entities] Read more
Source§

impl Default for ThirdPersonCamera

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<C> Bundle for C
where C: Component,

Source§

fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )

Source§

fn register_required_components( components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, )

Registers components that are required by the components in this Bundle.
Source§

fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )

Gets this Bundle’s component ids. This will be None if the component has not been registered.
Source§

impl<C> BundleFromComponents for C
where C: Component,

Source§

unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
where F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a>,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<C> DynamicBundle for C
where C: Component,

Source§

type Effect = ()

An operation on the entity that happens after inserting this bundle.
Source§

fn get_components( self, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ConditionalSend for T
where T: Send,