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: boolFlag to indicate if the aim functionality is turned on. Default is false
The mouse aim button binding. Default is MouseButton::Right
aim_speed: f32The speed at which aiming occurs. Default is 3.0
aim_zoom: f32The 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: boolFlag 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: boolFlag to indicate if the cursor is in a locked state or not. Default is true
cursor_lock_key: KeyCodeThe cursor lock toggle key binding. Default is KeyCode::Space
gamepad_settings: CustomGamepadSettingsCustom gamepad settings.
sensitivity: Vec2Mouse x/y sensitivity Default is Vec2::new(1.0, 1.0)
Flag to indicate if the orbiting functionality is controlled when a mouse button is being pressed. Default is false
The mouse button binding to control when the orbiting occurs. Default is MouseButton:Middle
offset_enabled: boolFlag to indicate whether there is a camera offset applied or not. Default is false
offset: OffsetThe 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: boolInverts 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: KeyCodeThe key binding of the offset toggle Default is KeyCode::KeyE
offset_toggle_speed: f32The speed at which the x offset will transition. Default is 5.0
zoom_enabled: boolFlag to indicate whether a camera zoom is applied or not. Default is true
zoom: ZoomThe 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: f32The speed at which the scroll wheel zooms in or out. Default is 1.0
Trait Implementations§
Source§impl Component for ThirdPersonCamera
impl Component for ThirdPersonCamera
Source§const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
Source§type Mutability = Mutable
type Mutability = Mutable
Component<Mutability = Mutable>,
while immutable components will instead have Component<Mutability = Immutable>. Read moreSource§fn register_required_components(
requiree: ComponentId,
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
inheritance_depth: u16,
recursion_check_stack: &mut Vec<ComponentId>,
)
fn register_required_components( requiree: ComponentId, components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, inheritance_depth: u16, recursion_check_stack: &mut Vec<ComponentId>, )
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Source§fn register_component_hooks(hooks: &mut ComponentHooks)
fn register_component_hooks(hooks: &mut ComponentHooks)
Component::on_add, etc.)ComponentHooks.Source§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
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 moreAuto Trait Implementations§
impl Freeze for ThirdPersonCamera
impl RefUnwindSafe for ThirdPersonCamera
impl Send for ThirdPersonCamera
impl Sync for ThirdPersonCamera
impl Unpin for ThirdPersonCamera
impl UnwindSafe for ThirdPersonCamera
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )
Source§fn register_required_components(
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
)
fn register_required_components( components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, )
Bundle.Source§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>),
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
Source§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSend for T
Source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components( self, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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