pub struct ActiveCameraData {
pub entity: Option<Entity>,
pub viewport_size: Option<Vec2>,
pub window_size: Option<Vec2>,
pub manual: bool,
}
Expand description
Tracks which PanOrbitCamera
is active (should handle input events), along with the window
and viewport dimensions, which are used for scaling mouse motion.
PanOrbitCameraPlugin
manages this resource automatically, in order to support multiple
viewports/windows. However, if this doesn’t work for you, you can take over and manage it
yourself, e.g. when you want to control a camera that is rendering to a texture.
Fields§
§entity: Option<Entity>
ID of the entity with PanOrbitCamera
that will handle user input. In other words, this
is the camera that will move when you orbit/pan/zoom.
viewport_size: Option<Vec2>
The viewport size. This is only used to scale the panning mouse motion. I recommend setting
this to the actual render target dimensions (e.g. the image or viewport), and changing
PanOrbitCamera::pan_sensitivity
to adjust the sensitivity if required.
window_size: Option<Vec2>
The size of the window. This is only used to scale the orbit mouse motion. I recommend
setting this to actual dimensions of the window that you want to control the camera from,
and changing PanOrbitCamera::orbit_sensitivity
to adjust the sensitivity if required.
manual: bool
Indicates to PanOrbitCameraPlugin
that it should not update/overwrite this resource.
If you are manually updating this resource you should set this to true
.
Note that setting this to true
will effectively break multiple viewport/window support
unless you manually reimplement it.
Trait Implementations§
Source§impl Debug for ActiveCameraData
impl Debug for ActiveCameraData
Source§impl Default for ActiveCameraData
impl Default for ActiveCameraData
Source§fn default() -> ActiveCameraData
fn default() -> ActiveCameraData
Source§impl PartialEq for ActiveCameraData
impl PartialEq for ActiveCameraData
impl Resource for ActiveCameraData
impl StructuralPartialEq for ActiveCameraData
Auto Trait Implementations§
impl Freeze for ActiveCameraData
impl RefUnwindSafe for ActiveCameraData
impl Send for ActiveCameraData
impl Sync for ActiveCameraData
impl Unpin for ActiveCameraData
impl UnwindSafe for ActiveCameraData
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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<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<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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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