Expand description
use bevy::prelude::*;
to import common components, bundles, and plugins.
Modules
- Constants for operating with the light units: lumens, and lux.
- Generation for some primitive shape meshes.
Macros
- Constructs an event at the debug level.
- Call
debug!
once per call site. - Constructs a span at the debug level.
- Constructs an event at the error level.
- Call
error!
once per call site. - Constructs a span at the error level.
- Constructs an event at the info level.
- Call
info!
once per call site. - Constructs a span at the info level.
- Call some expression only once per call site.
- Constructs an event at the trace level.
- Call
trace!
once per call site. - Constructs a span at the trace level.
- Constructs an event at the warn level.
- Call
warn!
once per call site. - Constructs a span at the warn level.
Structs
- The
GizmoConfigGroup
used for debug visualizations ofAabb
components on entities - 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. - Provides “asset” loading and processing functionality. An
Asset
is a “runtime value” that is loaded from anAssetSource
, which can be something like a filesystem, a network, etc. - 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 2-dimensional
bool
vector mask. - A 3-dimensional
bool
vector mask. - A 4-dimensional
bool
vector mask. - The background color of the node
- An individual input for
Animatable::blend
. - The border color of the UI node.
- Struct defining a
Sprite
border with padding values - A polygon with a variable number of vertices, allocated on the heap in a
Box<[Vec2]>
. - A series of connected line segments in 2D space, allocated on the heap in a
Box<[Vec2]>
. - A series of connected line segments in 3D space, allocated on the heap in a
Box<[Vec3]>
. - Marker struct for buttons
- A UI node that is a button
- A “press-able” input of type
T
. - 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 2D capsule primitive, also known as a stadium or pill shape.
- A 3D capsule primitive. A three-dimensional capsule is defined as a surface at a distance (radius) from a line
- 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.
- A circle primitive
- 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 cone primitive.
- A conical frustum primitive. A conical frustum can be created by slicing off a section of a cone.
- A spline interpolated continuously across the nearest four control points. The curve does not pass through any of the control points.
- A spline composed of a single cubic Bezier curve.
- 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 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 segment of a cubic curve, used to hold precomputed coefficients for fast interpolation.
- A cuboid primitive, more commonly known as a box.
- 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.
- A cylinder primitive
- Convenient query for giving a human friendly name to an entity.
- The default gizmo config group.
- 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 normalized vector pointing in a direction in 2D space
- A normalized vector pointing in a direction in 3D space
- 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. - An ellipse primitive
- 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. - A pair of cubemap textures that represent the surroundings of a specific area in space.
- 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.
- The fixed timestep game clock following virtual time.
- Runs first in the
FixedMain
schedule. - The schedule that runs last in
FixedMain
- The schedule that runs after the
FixedUpdate
schedule, for reacting to changes made in the main update logic. - The schedule that contains logic that must run before
FixedUpdate
. - The schedule that contains most gameplay logic.
- 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. - Plugin that provides gamepad handling to an
App
. - A struct 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. - 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
. - Provides hierarchy functionality to a Bevy app.
- 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. - Command that inserts a child at a given index of a parent’s children, shifting following children back.
- Marker used to identify default cameras, they will have priority over the
PrimaryWindow
camera. - Marker struct for labels
- Runs last in the schedule.
- A marker component for a light probe, which is a cuboid region that provides global illumination to all fragments inside it.
- An infinite line along a direction in 2D space.
- An infinite line along a direction in 3D space.
- 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.
- A UI node that is rendered using a
UiMaterial
- 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 or of a resource.
- Component used to identify an entity. Stores a hash for faster comparisons.
- The next state of
State<S>
. - Base component for a UI node, which also provides the computed size of the 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. - The
Outline
component adds an outline outside the edge of a UI node. Outlines do not take up space in the layout. - 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
- An unbounded plane in 2D space. It forms a separating surface through the origin, stretching infinitely far
- An unbounded plane in 3D space. It forms a separating surface through the origin, stretching infinitely far
- 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. - A polygon with N vertices.
- A series of connected line segments in 2D space.
- A series of connected line segments in 3D space.
- The schedule that runs once after
Startup
. - 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 runs before
Startup
. - 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 adds a child to an entity.
- Command that pushes children to the end of the entity’s
Children
. - A quaternion representing an orientation.
- Builder struct to create
QueryState
instances at runtime. - An infinite half-line starting at
origin
and going indirection
in 2D space. - An infinite half-line starting at
origin
and going indirection
in 3D space. - Real time clock representing elapsed wall clock time.
- An event that is sent whenever a window receives a character from the OS or underlying system.
- A rectangle defined by two opposite corners.
- A rectangle primitive
- 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
trait 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 the reflected
FromWorld
trait of a type. - A struct used to operate on reflected
Resource
of a type. - A struct used to serialize reflected instances of a type.
- A bundle that contains everything needed to make an entity a reflection probe.
- A polygon where all vertices lie on a circle, equally far apart.
- 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
. - A
SystemParam
that yields entities that had theirT
Component
removed or have been despawned with it. - 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.
- To spawn a scene, you can use either:
- A component bundle for a
Scene
root. - Handles spawning and despawning scenes in the world, either synchronously or batched through the
scene_spawner_system
. - A collection of systems, and the metadata and executor needed to run them in a certain order under certain conditions.
- Plugin for screen space ambient occlusion.
- A segment of a line along a direction in 2D space.
- A segment of a line along a direction in 3D space.
- 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.
- A
Bundle
that allows the correct positional rendering of an entity. - Settings for the listener for spatial audio sources.
- The schedule that contains scene spawning.
- A sphere primitive
- 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
- Specifies the rendering properties of a sprite.
- A
Bundle
of components for drawing a single sprite from an image. - A
Bundle
of components for drawing a single sprite from a sprite sheet (also referred to as aTextureAtlas
) or for animated sprites. - 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.
- A finite-state machine whose transitions have associated schedules ([
OnEnter(state)
] and [OnExit(state)
]). - Runs state transitions.
- Event sent when any state transition of
S
happens. - Describes the style of a UI container node
- Indicates that this root
Node
entity should be rendered to a specific camera. UI then will be layed out respecting the camera’s viewport and scale factor, and rendered to this camera’sbevy_render::camera::RenderTarget
. - 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
- Component used to draw a specific section of a texture.
- A builder which is used to create a texture atlas from many individual sprites.
- Stores a map used to lookup the position of a texture in a
TextureAtlas
. This can be used to either use and look up a specific section of a texture, or animate frame-by-frame as a sprite sheet. - Single texture slice, representing a texture rect to draw in a given area
- Slices a texture using the 9-slicing technique. This allows to reuse an image at various sizes without needing to prepare multiple assets. The associated texture will be split into nine portions, so that on resize the different portions scale or tile in different ways to keep the texture in proportion.
- A generic clock resource that tracks how much it has advanced since its previous update and since its creation.
- Tracks elapsed time. Enters the finished state once
duration
is reached. - A torus primitive, often representing a ring or donut shape
- 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.
- System parameter for computing up-to-date
GlobalTransform
s. - The base plugin for handling
Transform
components - A triangle in 2D space
- 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.
- The 2D texture displayed for this UI node
- Adds the necessary ECS resources and render logic to enable rendering entities using the given
UiMaterial
asset type (which includesUiMaterial
types). - A type which is commonly used to define margins, paddings and borders.
- The current scale of the UI.
- The schedule that contains app logic. Ideally containing anything that must run once per render frame, such as UI.
- 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 of whether an entity is visible and should be extracted for rendering.
- The virtual game clock representing game time.
- 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
- Used to control how items are distributed.
- Used to control how each individual item is aligned by default within the space they’re given.
- Used to control how the specified item is aligned within the space it’s given.
- Sets how a material’s base color alpha channel is used for transparency.
- Events that occur for a specific loaded
Asset
, such as “value changed” events and “dependency” events. - For a camera, specifies the color used to clear the viewport before rendering.
- Defines the text direction.
- Defines the layout model used by this node.
- 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 as well as whether the sparse or dense packing algorithm is used.
- Errors that occur when setting constraints 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. - Controls how the image is altered when scaled.
- A Input Method Editor event.
- Describes what type of input interaction has occurred for a UI node.
- Interpolation method to use between keyframes.
- An error indicating that a direction is invalid.
- Used to control how items are distributed.
- Used to control how each individual item is aligned by default within the space they’re given.
- Used to control how the specified item is aligned within the space it’s given.
- Describes the horizontal alignment of multiple lines of text relative to each other. This only affects the internal positioning of the lines of text within a text entity and does not affect the text entity’s position.
- 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
. - Defines how a texture slice scales when resized
- Specifies
Timer
behavior. - The type of torus determined by the minor and major radii
- Represents the possible value types for layout properties.
- User indication of whether an entity is visible. Propagates down the entity hierarchy.
- The winding order for a set of points
- 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
- An animatable value type.
- A trait adding
init_gizmo_group<T>()
to the app - 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.
- A trait used to create gizmo configs groups.
- A trait for rendering 2D geometric primitives (
P
) withGizmos
. - A trait for rendering 3D geometric primitives (
P
) withGizmos
. - 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 trait for shapes that can be turned into a
Mesh
. - A collection of Bevy app logic and configuration.
- Combines multiple
Plugin
s into a single unit. - A marker trait for 2D primitives
- A marker trait for 3D primitives
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.
- A static accessor to type paths and names.
- Materials are used alongside
UiMaterialPlugin
andMaterialNodeBundle
to spawn entities that are rendered with a specificUiMaterial
type. They serve as an easy to use high level way to renderNode
entities with custom shader logic.
Functions
- Generates a
Condition
-satisfying closure that returnstrue
if there are any entity with a component of the given type removed. - A
Condition
-satisfying system 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: - 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
- Generates a
Condition
-satisfying closure that returnstrue
if the state machine is currently instate
. - 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. - A
Condition
-satisfying system that returnstrue
if the resource of the given type has been added since the condition was last checked. - A
Condition
-satisfying system 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. - A
Condition
-satisfying system that returnstrue
if the resource exists. - A
Condition
-satisfying system 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 - A
Condition
-satisfying system that returnstrue
if the state machine changed state. - A
Condition
-satisfying system that returnstrue
if the state machine exists. - state_exists_and_equalsDeprecatedIdentical to
in_state
- use that instead.
Type Aliases
- 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
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
. - Derives the
TypePath
trait, providing a stable alternative to [std::any::type_name
].