pub struct InputManagerPlugin<A: Actionlike> { /* private fields */ }
Expand description

A [Plugin] that collects Input from disparate sources, producing an ActionState that can be conveniently checked

This plugin needs to be passed in an Actionlike enum type that you’ve created for your game. Each variant represents a “virtual button” whose state is stored in an ActionState struct.

Each InputManagerBundle contains:

  • an InputMap component, which stores an entity-specific mapping between the assorted input streams and an internal repesentation of “actions”
  • an ActionState component, which stores the current input state for that entity in an source-agnostic fashion

If you have more than one distinct type of action (e.g. menu actions, camera actions and player actions), consider creating multiple Actionlike enums and adding a copy of this plugin for each Actionlike type.

Systems

All systems added by this plugin can be dynamically enabled and disabled by setting the value of the ToggleActions<A> resource is set. This can be useful when working with states to pause the game, navigate menus or so on.

WARNING: Theses systems run during [CoreStage::PreUpdate]. If you have systems that care about inputs and actions that also run during this stage, you must define an ordering between your systems or behavior will be very erratic. The stable labels for these systems are available under InputManagerSystem enum.

Complete list:

Implementations

Creates a version of the plugin intended to run on the server

Inputs will not be processed; instead, ActionState should be copied directly from the state provided by the client, or constructed from ActionDiff event streams.

Trait Implementations

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

Configures the [App] to which this plugin is added.

Configures a name for the [Plugin] which is primarily used for debugging.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Return the T [ShaderType] for self. When used in [AsBindGroup] derives, it is safe to assume that all images in self exist. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Returns the argument unchanged.

Creates Self using data from the given [World]

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more