Expand description
use bevy::prelude::*;
to import common components, bundles, and plugins.
Modules
- Generation for some primitive shape meshes.
- system_adapterDeprecatedA collection of common adapters for piping the result of a system.
Macros
- Constructs an event at the debug level.
- Constructs a span at the debug level.
- Constructs an event at the error level.
- Constructs a span at the error level.
- Constructs an event at the info level.
- Constructs a span at the info level.
- Constructs an event at the trace level.
- Constructs a span at the trace level.
- Constructs an event at the warn level.
- Constructs a span at the warn level.
Structs
- Configuration for drawing the
Aabb
component on entities. - Command that adds a child to an entity.
- A filter on a component that only retains results added after the system last ran.
- An ambient light, which lights the entire scene equally.
- A list of
VariableCurve
, and theEntityPath
to which they apply. - Animation controls
- Adds animation support to an app
- The
AnyOf
query parameter fetches entities with any of the component types included in T. - A container of app logic and data.
- A
Resource
storingTypeRegistry
for type registrations relevant to a whole app. - Loads and tracks the state of
Asset
values from a configuredAssetReader
. This can be used to kick off new asset loads and retrieve their current load states. - A UI node that is a texture atlas sprite
- Used to control audio during playback.
- A source of audio data
- Bundle for playing a sound.
- Stores the position data of the input devices of type
T
. - A spline interpolated continuously across the nearest four control points. The curve does not pass through any of the control points.
- A 2-dimensional
bool
vector mask. - A 3-dimensional
bool
vector mask. - A 4-dimensional
bool
vector mask. - The background color of the node
- The border color of the UI node.
- Marker struct for buttons
- A UI node that is a button
- The calculated clip of the node
- The defining
Component
for camera entities, storing information about how and what to render through this camera. - Configuration for the “main 3d render graph”.
- A spline interpolated continuously across the nearest four control points, with the position of the curve specified at every control point and the tangents computed automatically.
- A filter on a component that only retains results added or mutably dereferenced after the system last ran.
- Struct for building children entities and adding them to a parent entity.
- Contains references to the child entities of this entity.
- Command that clears all children from an entity and removes
Parent
component from those children. - A
Resource
that stores the color that is used to clear the screen between frames. - A 2d material that renders 2d meshes with a texture tinted by a uniform color
- A spline composed of a single cubic Bezier curve.
- A segment of a cubic curve, used to hold precomputed coefficients for fast interpolation.
- An event that is sent whenever the user’s cursor enters a window.
- An event that is sent whenever the user’s cursor leaves a window.
- An event reporting that the mouse cursor has moved inside a window.
- Convenient query for giving a human friendly name to an entity.
- This plugin group will add all the default plugins for a Bevy application:
- A
SystemParam
that stores a buffer which gets applied to theWorld
duringapply_deferred
. This is used internally byCommands
to deferWorld
mutations. - Despawns the given entity’s children recursively
- Despawns the given entity and all its children recursively
- A Directional light.
- A component bundle for
DirectionalLight
entities. - A collection of serializable resources and dynamic entities.
- A
DynamicScene
builder, used to build a scene from aWorld
by extracting some entities and resources. - A component bundle for a
DynamicScene
root. - Lightweight identifier of an entity.
- Provides mutable access to a single entity and all of its components.
- Path to an entity, with
Name
s. Each entity in a path must have a name. - A read-only reference to a particular
Entity
and all of its components. - A mutable reference to a particular
Entity
, and the entire world. This is essentially a performance-optimized(Entity, &mut World)
tuple, which caches theEntityLocation
to reduce duplicate lookups. - Environment map based ambient lighting representing light from distant scenery.
- Reads events of type
T
in order and tracks which events have already been read. - Sends events of type
T
. - An event collection that represents the events that occurred within the last two
Events::update
calls. Events can be written to using anEventWriter
and are typically cheaply read using anEventReader
. - Schedule which extract data from the main world and inserts it into the render world.
- Runs first in the schedule. This is run by the
Main
schedule. - The amount of time that must pass before the fixed timestep schedule is run again.
- The schedule that contains systems which only run after a fixed period of time has elapsed.
- Configures the “classic” computer graphics distance fog effect, in which objects appear progressively more covered in atmospheric haze the further away they are from the camera. Affects meshes rendered via the PBR
StandardMaterial
. - Adds frame counting functionality to Apps.
- A gamepad with an associated
ID
. - An axis of a
Gamepad
. - A button of a
Gamepad
. - A collection of connected
Gamepad
s. - A
Resource
that stores configuration for gizmos. - A
SystemParam
for drawing gizmos. - Describe the position of an entity relative to the reference frame.
- Use this
Resource
to control the global volume of all audio with aVolume::Relative
volume. - Represents the position of a grid item in a single axis.
- A
GridTrack
is a Row or Column of a CSS Grid. This struct specifies what size the track should be. See below for the different “track sizing functions” you can specify. - Returns a bool that describes if an entity has the component
T
. - A spline interpolated continuously between the nearest two control points, with the position and velocity of the curve specified at both control points. This curve passes through all control points, with the specified velocity which includes direction and parametric speed.
- A rectangle defined by two opposite corners.
- A 2-dimensional vector.
- A 3-dimensional vector.
- A 4-dimensional vector.
- A UI node that is an image
- Adds the
Image
as an asset and makes sure that they are extracted and prepared for the GPU. - Wrapper type to mark a
SystemParam
as an input. - Whether or not an entity is visible in the hierarchy. This will not be accurate until
VisibilityPropagate
runs in thePostUpdate
schedule. - A “press-able” input of type
T
. - Command that inserts a child at a given index of a parent’s children, shifting following children back.
- Marker struct for labels
- Runs last in the schedule. This is run by the
Main
schedule. - A system local
SystemParam
. - The schedule that contains the app logic that is evaluated each tick of
App::update()
. - A 2x2 column major matrix.
- A 3x3 column major matrix.
- A 4x4 column major matrix.
- Adds the necessary ECS resources and render logic to enable rendering entities using the given
Material
asset type. - A 3D object made out of vertices representing triangles, lines, or points, with “attribute” values for each vertex.
- This plugin group will add the minimal plugins for a Bevy application:
- Controls the morph targets for all child
Handle<Mesh>
entities. In most cases,MorphWeights
should be considered the “source of truth” when writing morph targets for meshes. However you can choose to write childMeshMorphWeights
if your situation requires more granularity. Just note that if you setMorphWeights
, it will overwrite childMeshMorphWeights
values. - Unique mutable borrow of an entity’s component
- Component used to identify an entity. Stores a hash for faster comparisons.
- The next state of
State<S>
. - Describes the size of a UI node
- The basic UI node
- Shared borrow of a non-
Send
resource. - Unique borrow of a non-
Send
resource. - A filter that tests if any of the given filters apply.
- Project a 3D space onto a 2D surface using parallel lines, i.e., unlike
PerspectiveProjection
, the size of objects remains the same regardless of their distance to the camera. - Whether to show or hide overflowing items
- An alternative to
Commands
that can be used in parallel contexts, such as those inQuery::par_iter
- A collection of potentially conflicting
SystemParam
s allowed by disjoint access. - Holds a reference to the parent entity of this entity. This component should only be present on entities that actually have a parent entity.
- A 3D camera projection in which distant objects appear smaller than close objects.
- A source of sine wave sound
- Initial settings to be used when audio starts playing. If you would like to control the audio while it is playing, query for the
AudioSink
orSpatialAudioSink
components. Changes to this component will not be applied to already-playing audio. - A light that emits light in all directions from a central point.
- A component bundle for
PointLight
entities. - The schedule that contains logic that must run after
Update
. For example, synchronizing “local transforms” in a hierarchy to “global” absolute transforms. This enables thePostUpdate
transform-sync system to react to “local transform” changes inUpdate
without theUpdate
systems needing to know about (or add scheduler dependencies for) the “global transform sync system”. - The schedule that contains logic that must run before
Update
. For example, a system that reads raw keyboard input OS events into anEvents
resource. This enables systems inUpdate
to consume the events from theEvents
resource without actually knowing about (or taking a direct scheduler dependency on) the “os-level keyboard event system”. - Command that pushes children to the end of the entity’s
Children
. - A quaternion representing an orientation.
- Provides scoped access to a
World
state according to a givenWorldQuery
and query filter. - A ray is an infinite line starting at
origin
, going indirection
. - An event that is sent whenever a window receives a character from the OS or underlying system.
- A rectangle defined by two opposite corners.
- Shared borrow of an entity’s component with access to change detection. Similar to
Mut
but is immutable and so doesn’t require unique access. - A struct used to operate on reflected
Component
of a type. - A struct used to provide the default value of a type.
- A struct used to deserialize reflected instances of a type.
- Type data that represents the
FromReflect
trait and allows it to be used dynamically. - A struct used to operate on reflected
Resource
of a type. - A struct used to serialize reflected instances of a type.
- Command that removes children from an entity, and removes these children’s parent.
- Command that removes the parent of an entity, and removes that entity from the parent’s
Children
. - Represents a possibly repeated
GridTrack
. - Command that clear all children from an entity, replacing them with the given children.
- Shared borrow of a
Resource
. - Unique mutable borrow of a
Resource
. - Updates the running gamepad rumble effects.
- The scan code of a
KeyboardInput
. - To spawn a scene, you can use either:
- A component bundle for a
Scene
root. - A collection of systems, and the metadata and executor needed to run them in a certain order under certain conditions.
- Resource that stores
Schedule
s mapped toScheduleLabel
s. - Plugin for screen space ambient occlusion.
- A shader, as defined by its
ShaderSource
andShaderStage
This is an “unprocessed” shader. It can contain preprocessor directives. - Used to control spatial audio during playback.
- Bundle for playing a sound with a 3D position.
- A
Bundle
that allows the correct positional rendering of an entity. - Settings for playing spatial audio.
- The schedule that contains scene spawning. This is run by the
Main
schedule. - A light that emits light in a given direction from a central point. Behaves like a point light in a perfectly absorbent housing that shines light only in a given direction. The direction is taken from the transform, and can be specified with
Transform::looking_at
. - A component bundle for spot light entities
- A Bundle of components for drawing a single sprite from a sprite sheet (also referred to as a
TextureAtlas
) - A material with “standard” properties used in PBR lighting Standard property values with pictures here https://google.github.io/filament/Material%20Properties.pdf.
- The schedule that runs once when the app starts. This is run by the
Main
schedule. - A finite-state machine whose transitions have associated schedules ([
OnEnter(state)
] and [OnExit(state)
]). - Runs state transitions. This is run by the
Main
schedule. - Describes the style of a UI container node
- Helper for configuring and creating the default task pools. For end-users who want full control, set up
TaskPoolPlugin
- The bundle of components needed to draw text in a 2D scene via a 2D
Camera2dBundle
. Example usage. - A UI node that is text
- An atlas containing multiple textures (like a spritesheet or a tilemap). Example usage animating sprite. Example usage loading sprite sheet.
- A builder which is used to create a texture atlas from many individual sprites.
- A clock that tracks how much it has advanced (and how much real time has elapsed) since its previous update and since its creation.
- Tracks elapsed time. Enters the finished state once
duration
is reached. - A touch input event.
- A collection of
Touch
es. - Describe the position of an entity. If the entity has a parent, the position is relative to its parent position.
- The base plugin for handling
Transform
components - Registration of default types to the
TypeRegistry
resource. - A rectangle defined by two opposite corners.
- A 2-dimensional vector.
- A 3-dimensional vector.
- A 4-dimensional vector.
- Configuration for cameras related to UI.
- The 2D texture displayed for this UI node
- A type which is commonly used to define margins, paddings and borders.
- The current scale of the UI.
- The atlas sprite to be used in a UI Texture Atlas Node
- The schedule that contains app logic. This is run by the
Main
schedule. - Print a warning for each
Entity
with aT
component whose parent doesn’t have aT
component. - Describes how an attribute of a
Transform
orMorphWeights
should be animated. - A 2-dimensional vector.
- A 3-dimensional vector.
- A 4-dimensional vector.
- Algorithmically-computed indication or whether an entity is visible and should be extracted for rendering.
- A
Bundle
of theVisibility
,InheritedVisibility
, andViewVisibility
Component
s, which describe the visibility of an entity. - The defining
Component
for window entities, storing information about how it should appear and behave. - An event that is sent when a window is repositioned in physical pixels.
- A
Plugin
that defines an interface for windowing support in Bevy. - The size limits on a
Window
. - Filter that selects entities with a component
T
. - Filter that selects entities without a component
T
. - Stores and exposes operations on entities, components, resources, and their associated metadata.
- Struct for adding children to an entity directly through the
World
for use in exclusive systems.
Enums
- Defines how each line is aligned within the flexbox.
- How items are aligned according to the cross axis
- How this item is aligned according to the cross axis. Overrides
AlignItems
. - Sets how a material’s base color alpha channel is used for transparency.
- Events that occur for a specific
Asset
, such as “value changed” events and “dependency” events. - Provides “asset” loading and processing functionality. An
Asset
is a “runtime value” that is loaded from anAssetProvider
, which can be something like a filesystem, a network, etc. - Defines the text direction
- Whether to use a Flexbox layout model.
- Errors that can occur when loading a dynamic plugin
- Euler rotation sequences.
- Events related to files being dragged and dropped on a window.
- Defines how flexbox items are ordered within a flexbox
- Defines if flexbox items appear on a single line or on multiple lines
- Allows switching between different fog falloff modes, and configuring their parameters.
- A type of a
GamepadAxis
. - A type of a
GamepadButton
. - Controls whether grid items are placed row-wise or column-wise. And whether the sparse or dense packing algorithm is used.
- Errors that occur when setting contraints for a
GridPlacement
- How many times to repeat a repeated grid track
- A strong or weak handle to a specific
Asset
. If aHandle
isHandle::Strong
, theAsset
will be kept alive until theHandle
is dropped. If aHandle
isHandle::Weak
, it does not necessarily reference a liveAsset
, nor will it keep assets alive. - A Input Method Editor event.
- Describes what type of input interaction has occurred for a UI node.
- Defines how items are aligned according to the main axis
- How items are aligned according to the main axis
- How this item is aligned according to the main axis. Overrides
JustifyItems
. - The key code of a
KeyboardInput
. - List of keyframes for one of the attribute of a
Transform
. - References a screen monitor.
- A button on a mouse device.
- Configuration resource for Multi-Sample Anti-Aliasing.
- Whether to show or hide overflowing items
- The parallax mapping method to use to compute depth based on the material’s
depth_map
. - The strategy used to position this node
- A configurable
CameraProjection
that can select its projection type at runtime. - A filter used to control which types can be added to a
DynamicScene
. - Describes horizontal alignment preference for positioning & bounds.
- Specifies
Timer
behavior. - Represents the possible value types for layout properties.
- User indication of whether an entity is visible. Propagates down the entity hierarchy.
- Defines where a
Window
should be placed on the screen. - Indicates that this
Node
entity’s front-to-back ordering is not controlled solely by its location in the UI hierarchy. A node with a higher z-index will appear on top of other nodes with a lower z-index.
Traits
- Adds asset-related builder methods to
App
. - Common interactions with an audio sink.
- Trait for removing, adding and replacing children and parents of an entity.
- Collection of methods similar to
BuildChildren
, but preserving each entity’sGlobalTransform
. - Trait that defines adding, changing and children and parents of an entity directly through the
World
. - The
Bundle
trait enables insertion and removal ofComponent
s from an entity. - A data type that can be used to store data for an entity.
- A system that determines if one or more scheduled systems should run.
- Implement this on cubic splines that can generate a curve from their spline parameters.
- A type implementing this trait can be converted to a
rodio::Source
type. It must beSend
andSync
in order to be registered. Types that implement this trait usually contain raw sound data that can be converted into an iterator of samples. This trait is implemented forAudioSource
. Check the exampledecodable
for how to implement this trait on a custom type. - Trait that holds functions for despawning recursively down the transform hierarchy
- Types that can read change detection information. This change detection is controlled by
DetectChangesMut
types such asResMut
. - Types that implement reliable change detection.
- A type that can be stored in an
Events<E>
resource You can conveniently access events using theEventReader
andEventWriter
system parameter. - A trait that enables types to be dynamically constructed from reflected data.
- Creates an instance of the type this trait is implemented for using data from the supplied
World
. - A convenience trait which combines fetching and downcasting of struct fields.
- A trait which allows nested
Reflect
values to be retrieved with path strings. - A convenience trait which combines fetching and downcasting of tuple struct fields.
- An extension trait for
Query
that adds hierarchy related methods. - Conversion trait to turn something into a
System
. - Types that can convert into a
SystemConfigs
. - Types that can be converted into a
SystemSet
. - Types that can convert into a
SystemSetConfigs
. - Materials are used alongside
MaterialPlugin
andMaterialMeshBundle
to spawn entities that are rendered with a specificMaterial
type. They serve as an easy to use high level way to renderMesh
entities with custom shader logic. - A collection of Bevy app logic and configuration.
- Combines multiple
Plugin
s into a single unit. System
types that do not modify theWorld
when run. This is implemented for any systems whose parameters all implementReadOnlySystemParam
.- The core trait of
bevy_reflect
, used for accessing and modifying data dynamically. - Something that can be interpreted as a reflection path in
GetPath
. - A type that can be inserted into a
World
as a singleton. - Types that can define world-wide states in a finite-state machine.
- A trait used to power struct-like operations via reflection.
- An ECS system that can be added to a
Schedule
- A trait implemented for all functions that can be used as
System
s. - Types that identify logical groups of systems.
- A trait for point transformation methods.
- A trait used to power tuple struct-like operations via reflection.
Functions
- Generates a
Condition
-satisfying closure that returnstrue
if there are any entity with a component of the given type removed. - Generates a
Condition
-satisfying closure that returnstrue
if there are any entities with the given component type. - Instructs the executor to call
System::apply_deferred
on the systems that have run but not applied theirDeferred
system parameters (likeCommands
) or other system buffers. - If a new state is queued in
NextState<S>
, this system: - dbgDeprecatedSystem adapter that utilizes the
bevy_utils::tracing::debug!
macro to print the output of a system. - An ergonomic abbreviation for
Default::default()
to make initializing structs easier. This is especially helpful when combined with “struct update syntax”. - Function for despawning an entity and all its children
- Dynamically links a plugin at the given path. The plugin must export a function with the
CreatePlugin
signature named_bevy_create_plugin
. - errorDeprecatedSystem adapter that utilizes the
bevy_utils::tracing::error!
macro to print the output of a system. - ignoreDeprecatedSystem adapter that ignores the output of the previous system in a pipe. This is useful for fallible systems that should simply return early in case of an
Err
/None
. - Generates a
Condition
-satisfying closure that returnstrue
if the state machine is currently instate
. - infoDeprecatedSystem adapter that utilizes the
bevy_utils::tracing::info!
macro to print system information. - Generates a
Condition
that inverses the result of passed one. - Generates a
Condition
-satisfying closure that returnstrue
if there are any new events of the given type since it was last called. - Generates a
Condition
-satisfying closure that returnstrue
if the resource of the given type has been added since the condition was last checked. - Generates a
Condition
-satisfying closure that returnstrue
if the resource of the given type has had its value changed since the condition was last checked. - Generates a
Condition
-satisfying closure that returnstrue
if the resource of the given type has had its value changed since the condition was last checked. - Generates a
Condition
-satisfying closure that returnstrue
if the resource exists. - Generates a
Condition
-satisfying closure that returnstrue
if the resource of the given type has had its value changed since the condition was last checked. - Generates a
Condition
-satisfying closure that returnstrue
if the resource exists and is equal tovalue
. - Generates a
Condition
-satisfying closure that returnstrue
if the resource of the given type has been removed since the condition was last checked. - Generates a
Condition
-satisfying closure that returnstrue
if the first time the condition is run and false every time after - Generates a
Condition
-satisfying closure that returnstrue
if the state machine changed state. - Generates a
Condition
-satisfying closure that returnstrue
if the state machine exists. - Generates a
Condition
-satisfying closure that returnstrue
if the state machine exists and is currently instate
. - unwrapDeprecatedSystem adapter that unwraps the
Ok
variant of aResult
. This is useful for fallible systems that should panic in the case of an error. - warnDeprecatedSystem adapter that utilizes the
bevy_utils::tracing::warn!
macro to print the output of a system.
Type Definitions
- Bundle for playing a standard bevy audio asset
- A component bundle for entities with a
Mesh2dHandle
and aColorMaterial
. - A component bundle for PBR entities with a
Mesh
and aStandardMaterial
. - Bundle for playing a bevy note sound
- Bundle for playing a standard bevy audio asset with a 3D position
- Bundle for playing a bevy note sound with a 3D position
Attribute Macros
- A macro that automatically generates type data for traits, which their implementors can then register.
Derive Macros
- Generates a dynamic plugin entry point function for the given
Plugin
type. - Derives the
FromReflect
trait. - The main derive macro used by
bevy_reflect
for deriving itsReflect
trait. - Derive macro generating an impl of the trait
SystemSet
.