BevyCSharp 0.4.129
dotnet add package BevyCSharp --version 0.4.129
NuGet\Install-Package BevyCSharp -Version 0.4.129
<PackageReference Include="BevyCSharp" Version="0.4.129" />
<PackageVersion Include="BevyCSharp" Version="0.4.129" />
<PackageReference Include="BevyCSharp" />
paket add BevyCSharp --version 0.4.129
#r "nuget: BevyCSharp, 0.4.129"
#:package BevyCSharp@0.4.129
#addin nuget:?package=BevyCSharp&version=0.4.129
#tool nuget:?package=BevyCSharp&version=0.4.129
Bevy C#
Write Bevy games in C#.

<sup>BevyCSharp.Sample, dotnet run --project BevyCSharp.Sample</sup>
Mark a struct [Behavior], give it methods with stage attributes, and a Roslyn source generator
wires it into Bevy's schedule, as a component and a system at the same time. Bevy is the engine
underneath, with its ECS, its scheduler, its timing, its input and its renderer.
using Bevy;
[Behavior]
public partial struct Spin
{
[Range(0f, 5f)] public float Speed;
private float _angle;
// static: one plain system
[OnStartup]
public static void Scene(BehaviorContext ctx)
{
ctx.Ecs.Add(Render.SpawnCamera3d(), Transform.LookingAt(new Vec3(3f, 3f, 5f), Vec3.Zero, Vec3.UnitY));
Render.SpawnLight(LightKind.Directional, 10_000f);
var cube = ctx.Ecs.Spawn();
ctx.Ecs.Add(cube, new Spin { Speed = 1.2f });
Render.SetMesh(ctx.Ecs, cube, Render.CreateMesh(MeshShape.Cuboid, 1f, 1f, 1f));
Render.SetMaterial(ctx.Ecs, cube, Render.CreateMaterial(0.25f, 0.55f, 0.85f));
}
// instance: once per entity that has one, handed the entity's transform
[OnUpdate]
public void Tick(BehaviorContext ctx, ref Transform transform)
{
_angle += Speed * ctx.Time.Delta;
transform.Rotation = Quat.FromAxisAngle(Vec3.UnitY, _angle);
}
}
In Program.cs
using Bevy;
BevyApp.Run();
Behaviors are discovered automatically, so a consuming project needs no registration code.
This is Bevy, run unchanged underneath, so what a game draws and how its systems are scheduled are Bevy's. What it adds is C#, behaviors reloaded while the game runs, an editor, scene files and saves, physics, and a package with no Rust in it. What it costs is a call across to the bridge each time C# reaches Bevy, and only what the bridge has opened, which reaches two thirds of the Bevy examples about a game rather than Rust. Compared with Bevy has each, with what was measured.
Contents
- Examples
- Install
- Guide
- Driving a running app
- Status and limitations
- Building from source
- Contributing
- License
Examples
Bevy's own examples are written in C# under Bevy's names in BevyCSharp.Examples, each opened by
name and captured beside Bevy's picture of it, and EXAMPLES.md has a
row for every one of Bevy's, saying whether it is written, can be, or waits on something the bridge
lacks. A picture opens the C# program that drew it.
<table> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/usage/context_menu.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/context_menu.webp" width="200"/></a><br><code>context_menu</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/bloom_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bloom_2d.webp" width="200"/></a><br><code>bloom_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/move_sprite.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/move_sprite.webp" width="200"/></a><br><code>move_sprite</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/2d_viewport_to_world.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_viewport_to_world.webp" width="200"/></a><br><code>2d_viewport_to_world</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/rotate_to_cursor.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rotate_to_cursor.webp" width="200"/></a><br><code>rotate_to_cursor</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/rotation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rotation.webp" width="200"/></a><br><code>rotation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d.webp" width="200"/></a><br><code>mesh2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_arcs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_arcs.webp" width="200"/></a><br><code>mesh2d_arcs</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_vertex_color_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_vertex_color_texture.webp" width="200"/></a><br><code>mesh2d_vertex_color_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/2d_shapes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_shapes.webp" width="200"/></a><br><code>2d_shapes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/cpu_draw.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/cpu_draw.webp" width="200"/></a><br><code>cpu_draw</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite.webp" width="200"/></a><br><code>sprite</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_animation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_animation.webp" width="200"/></a><br><code>sprite_animation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_scale.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_scale.webp" width="200"/></a><br><code>sprite_scale</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_flipping.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_flipping.webp" width="200"/></a><br><code>sprite_flipping</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_sheet.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_sheet.webp" width="200"/></a><br><code>sprite_sheet</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_tile.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_tile.webp" width="200"/></a><br><code>sprite_tile</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_slice.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_slice.webp" width="200"/></a><br><code>sprite_slice</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/text2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text2d.webp" width="200"/></a><br><code>text2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/multi_window_text.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multi_window_text.webp" width="200"/></a><br><code>multi_window_text</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_input.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_input.webp" width="200"/></a><br><code>text_input</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/editable_text_filter.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/editable_text_filter.webp" width="200"/></a><br><code>editable_text_filter</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/multiline_text_input.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multiline_text_input.webp" width="200"/></a><br><code>multiline_text_input</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/multiple_text_inputs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multiple_text_inputs.webp" width="200"/></a><br><code>multiple_text_inputs</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/tilemap_chunk.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tilemap_chunk.webp" width="200"/></a><br><code>tilemap_chunk</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/tilemap_chunk_orientation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tilemap_chunk_orientation.webp" width="200"/></a><br><code>tilemap_chunk_orientation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/transparency_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparency_2d.webp" width="200"/></a><br><code>transparency_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_alpha_mode.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_alpha_mode.webp" width="200"/></a><br><code>mesh2d_alpha_mode</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_repeated_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_repeated_texture.webp" width="200"/></a><br><code>mesh2d_repeated_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/pixel_grid_snap.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pixel_grid_snap.webp" width="200"/></a><br><code>pixel_grid_snap</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/math/bounding_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bounding_2d.webp" width="200"/></a><br><code>bounding_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/wireframe_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/wireframe_2d.webp" width="200"/></a><br><code>wireframe_2d</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/3d_scene.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_scene.webp" width="200"/></a><br><code>3d_scene</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/rect_light.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rect_light.webp" width="200"/></a><br><code>rect_light</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/3d_shapes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_shapes.webp" width="200"/></a><br><code>3d_shapes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/3d_viewport_to_world.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_viewport_to_world.webp" width="200"/></a><br><code>3d_viewport_to_world</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/animated_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_material.webp" width="200"/></a><br><code>animated_material</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/generate_custom_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/generate_custom_mesh.webp" width="200"/></a><br><code>generate_custom_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/anti_aliasing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anti_aliasing.webp" width="200"/></a><br><code>anti_aliasing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/atmospheric_fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/atmospheric_fog.webp" width="200"/></a><br><code>atmospheric_fog</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/fog.webp" width="200"/></a><br><code>fog</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/auto_exposure.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/auto_exposure.webp" width="200"/></a><br><code>auto_exposure</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/blend_modes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/blend_modes.webp" width="200"/></a><br><code>blend_modes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/contact_shadows.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/contact_shadows.webp" width="200"/></a><br><code>contact_shadows</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/lighting.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/lighting.webp" width="200"/></a><br><code>lighting</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/lines.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/lines.webp" width="200"/></a><br><code>lines</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/ssao.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ssao.webp" width="200"/></a><br><code>ssao</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/spotlight.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spotlight.webp" width="200"/></a><br><code>spotlight</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/bloom_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bloom_3d.webp" width="200"/></a><br><code>bloom_3d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/motion_blur.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/motion_blur.webp" width="200"/></a><br><code>motion_blur</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/order_independent_transparency.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/order_independent_transparency.webp" width="200"/></a><br><code>order_independent_transparency</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/tonemapping.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tonemapping.webp" width="200"/></a><br><code>tonemapping</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/orthographic.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/orthographic.webp" width="200"/></a><br><code>orthographic</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/parenting.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/parenting.webp" width="200"/></a><br><code>parenting</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/pbr.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pbr.webp" width="200"/></a><br><code>pbr</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/render_to_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/render_to_texture.webp" width="200"/></a><br><code>render_to_texture</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/shadow_biases.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shadow_biases.webp" width="200"/></a><br><code>shadow_biases</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/shadow_caster_receiver.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shadow_caster_receiver.webp" width="200"/></a><br><code>shadow_caster_receiver</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/skybox.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/skybox.webp" width="200"/></a><br><code>skybox</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/solari.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/solari.webp" width="200"/></a><br><code>solari</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/spherical_area_lights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spherical_area_lights.webp" width="200"/></a><br><code>spherical_area_lights</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/split_screen.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/split_screen.webp" width="200"/></a><br><code>split_screen</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/texture.webp" width="200"/></a><br><code>texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/transparency_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparency_3d.webp" width="200"/></a><br><code>transparency_3d</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/transmission.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transmission.webp" width="200"/></a><br><code>transmission</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/two_passes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/two_passes.webp" width="200"/></a><br><code>two_passes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/vertex_colors.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/vertex_colors.webp" width="200"/></a><br><code>vertex_colors</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/wireframe.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/wireframe.webp" width="200"/></a><br><code>wireframe</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/irradiance_volumes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/irradiance_volumes.webp" width="200"/></a><br><code>irradiance_volumes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/meshlet.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/meshlet.webp" width="200"/></a><br><code>meshlet</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/mesh_ray_cast.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh_ray_cast.webp" width="200"/></a><br><code>mesh_ray_cast</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/lightmaps.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/lightmaps.webp" width="200"/></a><br><code>lightmaps</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animation_events.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animation_events.webp" width="200"/></a><br><code>animation_events</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_mesh.webp" width="200"/></a><br><code>animated_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_mesh_control.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_mesh_control.webp" width="200"/></a><br><code>animated_mesh_control</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_mesh_events.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_mesh_events.webp" width="200"/></a><br><code>animated_mesh_events</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animation_graph.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animation_graph.webp" width="200"/></a><br><code>animation_graph</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/morph_targets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/morph_targets.webp" width="200"/></a><br><code>morph_targets</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_transform.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_transform.webp" width="200"/></a><br><code>animated_transform</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/color_animation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/color_animation.webp" width="200"/></a><br><code>color_animation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/eased_motion.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/eased_motion.webp" width="200"/></a><br><code>eased_motion</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/easing_functions.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/easing_functions.webp" width="200"/></a><br><code>easing_functions</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/custom_skinned_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_skinned_mesh.webp" width="200"/></a><br><code>custom_skinned_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/drag_and_drop.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/drag_and_drop.webp" width="200"/></a><br><code>drag_and_drop</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/empty_defaults.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/empty_defaults.webp" width="200"/></a><br><code>empty_defaults</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/logs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/logs.webp" width="200"/></a><br><code>logs</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/headless_renderer.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/headless_renderer.webp" width="200"/></a><br><code>headless_renderer</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/alter_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/alter_mesh.webp" width="200"/></a><br><code>alter_mesh</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/alter_sprite.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/alter_sprite.webp" width="200"/></a><br><code>alter_sprite</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/asset_loading.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/asset_loading.webp" width="200"/></a><br><code>asset_loading</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/embedded_asset.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/embedded_asset.webp" width="200"/></a><br><code>embedded_asset</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/extra_asset_source.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/extra_asset_source.webp" width="200"/></a><br><code>extra_asset_source</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/generated_assets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/generated_assets.webp" width="200"/></a><br><code>generated_assets</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/hot_asset_reloading.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/hot_asset_reloading.webp" width="200"/></a><br><code>hot_asset_reloading</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/repeated_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/repeated_texture.webp" width="200"/></a><br><code>repeated_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/multi_asset_sync.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multi_asset_sync.webp" width="200"/></a><br><code>multi_asset_sync</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/async_tasks/async_compute.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/async_compute.webp" width="200"/></a><br><code>async_compute</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/async_tasks/async_channel_pattern.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/async_channel_pattern.webp" width="200"/></a><br><code>async_channel_pattern</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/async_tasks/external_source_external_thread.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/external_source_external_thread.webp" width="200"/></a><br><code>external_source_external_thread</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/audio.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/audio.webp" width="200"/></a><br><code>audio</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/audio_control.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/audio_control.webp" width="200"/></a><br><code>audio_control</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/soundtrack.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/soundtrack.webp" width="200"/></a><br><code>soundtrack</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/spatial_audio_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spatial_audio_2d.webp" width="200"/></a><br><code>spatial_audio_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/spatial_audio_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spatial_audio_3d.webp" width="200"/></a><br><code>spatial_audio_3d</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/play_sound_effect.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/play_sound_effect.webp" width="200"/></a><br><code>play_sound_effect</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/entity_disabling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/entity_disabling.webp" width="200"/></a><br><code>entity_disabling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/hierarchy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/hierarchy.webp" width="200"/></a><br><code>hierarchy</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/iter_combinations.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/iter_combinations.webp" width="200"/></a><br><code>iter_combinations</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/one_shot_systems.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/one_shot_systems.webp" width="200"/></a><br><code>one_shot_systems</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/parallel_query.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/parallel_query.webp" width="200"/></a><br><code>parallel_query</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/removal_detection.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/removal_detection.webp" width="200"/></a><br><code>removal_detection</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/delayed_commands.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/delayed_commands.webp" width="200"/></a><br><code>delayed_commands</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/states.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/states.webp" width="200"/></a><br><code>states</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/sub_states.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sub_states.webp" width="200"/></a><br><code>sub_states</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/computed_states.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/computed_states.webp" width="200"/></a><br><code>computed_states</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/custom_transitions.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_transitions.webp" width="200"/></a><br><code>custom_transitions</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/state_scoped.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/state_scoped.webp" width="200"/></a><br><code>state_scoped</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/time/virtual_time.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/virtual_time.webp" width="200"/></a><br><code>virtual_time</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/alien_cake_addict.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/alien_cake_addict.webp" width="200"/></a><br><code>alien_cake_addict</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/breakout.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/breakout.webp" width="200"/></a><br><code>breakout</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/contributors.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/contributors.webp" width="200"/></a><br><code>contributors</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/desk_toy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/desk_toy.webp" width="200"/></a><br><code>desk_toy</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/game_menu.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/game_menu.webp" width="200"/></a><br><code>game_menu</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/loading_screen.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/loading_screen.webp" width="200"/></a><br><code>loading_screen</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/input/mouse_grab.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mouse_grab.webp" width="200"/></a><br><code>mouse_grab</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_defs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_defs.webp" width="200"/></a><br><code>shader_defs</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material.webp" width="200"/></a><br><code>shader_material</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/extended_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/extended_material.webp" width="200"/></a><br><code>extended_material</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_prepass.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_prepass.webp" width="200"/></a><br><code>shader_prepass</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material_screenspace_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material_screenspace_texture.webp" width="200"/></a><br><code>shader_material_screenspace_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/automatic_instancing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/automatic_instancing.webp" width="200"/></a><br><code>automatic_instancing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/animate_shader.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animate_shader.webp" width="200"/></a><br><code>animate_shader</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/compute_shader_game_of_life.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/compute_shader_game_of_life.webp" width="200"/></a><br><code>compute_shader_game_of_life</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/gpu_readback.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gpu_readback.webp" width="200"/></a><br><code>gpu_readback</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/compute_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/compute_mesh.webp" width="200"/></a><br><code>compute_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/array_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/array_texture.webp" width="200"/></a><br><code>array_texture</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/storage_buffer.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/storage_buffer.webp" width="200"/></a><br><code>storage_buffer</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/custom_post_processing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_post_processing.webp" width="200"/></a><br><code>custom_post_processing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/custom_shader_instancing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_shader_instancing.webp" width="200"/></a><br><code>custom_shader_instancing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/texture_binding_array.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/texture_binding_array.webp" width="200"/></a><br><code>texture_binding_array</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/fullscreen_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/fullscreen_material.webp" width="200"/></a><br><code>fullscreen_material</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/bevymark.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bevymark.webp" width="200"/></a><br><code>bevymark</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/bevymark_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bevymark_3d.webp" width="200"/></a><br><code>bevymark_3d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_animated_sprites.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_animated_sprites.webp" width="200"/></a><br><code>many_animated_sprites</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_animated_sprite_meshes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_animated_sprite_meshes.webp" width="200"/></a><br><code>many_animated_sprite_meshes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_buttons.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_buttons.webp" width="200"/></a><br><code>many_buttons</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_gradients.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_gradients.webp" width="200"/></a><br><code>many_gradients</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_cameras_lights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_cameras_lights.webp" width="200"/></a><br><code>many_cameras_lights</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_cubes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_cubes.webp" width="200"/></a><br><code>many_cubes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_gizmos.webp" width="200"/></a><br><code>many_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_foxes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_foxes.webp" width="200"/></a><br><code>many_foxes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_morph_targets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_morph_targets.webp" width="200"/></a><br><code>many_morph_targets</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_glyphs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_glyphs.webp" width="200"/></a><br><code>many_glyphs</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_lights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_lights.webp" width="200"/></a><br><code>many_lights</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_sprites.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_sprites.webp" width="200"/></a><br><code>many_sprites</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_sprite_meshes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_sprite_meshes.webp" width="200"/></a><br><code>many_sprite_meshes</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_text2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_text2d.webp" width="200"/></a><br><code>many_text2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_text.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_text.webp" width="200"/></a><br><code>many_text</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_materials.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_materials.webp" width="200"/></a><br><code>many_materials</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/transform_hierarchy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transform_hierarchy.webp" width="200"/></a><br><code>transform_hierarchy</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/text_pipeline.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_pipeline.webp" width="200"/></a><br><code>text_pipeline</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/tools/gamepad_viewer.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gamepad_viewer.webp" width="200"/></a><br><code>gamepad_viewer</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/observers.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/observers.webp" width="200"/></a><br><code>observers</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/3d_rotation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_rotation.webp" width="200"/></a><br><code>3d_rotation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/align.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/align.webp" width="200"/></a><br><code>align</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/scale.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scale.webp" width="200"/></a><br><code>scale</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/transform.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transform.webp" width="200"/></a><br><code>transform</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/translation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/translation.webp" width="200"/></a><br><code>translation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/anchor_layout.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anchor_layout.webp" width="200"/></a><br><code>anchor_layout</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/borders.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/borders.webp" width="200"/></a><br><code>borders</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/box_shadow.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/box_shadow.webp" width="200"/></a><br><code>box_shadow</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/button.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/button.webp" width="200"/></a><br><code>button</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_drag_and_drop.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_drag_and_drop.webp" width="200"/></a><br><code>ui_drag_and_drop</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/font_query.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/font_query.webp" width="200"/></a><br><code>font_query</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/display_and_visibility.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/display_and_visibility.webp" width="200"/></a><br><code>display_and_visibility</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/font_weights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/font_weights.webp" width="200"/></a><br><code>font_weights</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/font_variations.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/font_variations.webp" width="200"/></a><br><code>font_variations</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/window_fallthrough.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_fallthrough.webp" width="200"/></a><br><code>window_fallthrough</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/vertical_slider.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/vertical_slider.webp" width="200"/></a><br><code>vertical_slider</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/overflow.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/overflow.webp" width="200"/></a><br><code>overflow</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/overflow_clip_margin.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/overflow_clip_margin.webp" width="200"/></a><br><code>overflow_clip_margin</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/overflow_debug.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/overflow_debug.webp" width="200"/></a><br><code>overflow_debug</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/relative_cursor_position.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/relative_cursor_position.webp" width="200"/></a><br><code>relative_cursor_position</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/render_ui_to_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/render_ui_to_texture.webp" width="200"/></a><br><code>render_ui_to_texture</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/size_constraints.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/size_constraints.webp" width="200"/></a><br><code>size_constraints</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/strikethrough_and_underline.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/strikethrough_and_underline.webp" width="200"/></a><br><code>strikethrough_and_underline</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text.webp" width="200"/></a><br><code>text</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_background_colors.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_background_colors.webp" width="200"/></a><br><code>text_background_colors</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_debug.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_debug.webp" width="200"/></a><br><code>text_debug</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/flex_layout.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/flex_layout.webp" width="200"/></a><br><code>flex_layout</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_wrap_debug.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_wrap_debug.webp" width="200"/></a><br><code>text_wrap_debug</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/letter_spacing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/letter_spacing.webp" width="200"/></a><br><code>letter_spacing</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/grid.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/grid.webp" width="200"/></a><br><code>grid</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/gradients.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gradients.webp" width="200"/></a><br><code>gradients</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/stacked_gradients.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/stacked_gradients.webp" width="200"/></a><br><code>stacked_gradients</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/scroll.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scroll.webp" width="200"/></a><br><code>scroll</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/transparency_ui.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparency_ui.webp" width="200"/></a><br><code>transparency_ui</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/z_index.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/z_index.webp" width="200"/></a><br><code>z_index</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_scaling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_scaling.webp" width="200"/></a><br><code>ui_scaling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_atlas.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_atlas.webp" width="200"/></a><br><code>ui_texture_atlas</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_slice.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_slice.webp" width="200"/></a><br><code>ui_texture_slice</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_slice_flip_and_tile.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_slice_flip_and_tile.webp" width="200"/></a><br><code>ui_texture_slice_flip_and_tile</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_atlas_slice.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_atlas_slice.webp" width="200"/></a><br><code>ui_texture_atlas_slice</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_transform.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_transform.webp" width="200"/></a><br><code>ui_transform</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_target_camera.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_target_camera.webp" width="200"/></a><br><code>ui_target_camera</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/viewport_node.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/viewport_node.webp" width="200"/></a><br><code>viewport_node</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/image_node.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/image_node.webp" width="200"/></a><br><code>image_node</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/clear_color.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clear_color.webp" width="200"/></a><br><code>clear_color</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/multiple_windows.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multiple_windows.webp" width="200"/></a><br><code>multiple_windows</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/scale_factor_override.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scale_factor_override.webp" width="200"/></a><br><code>scale_factor_override</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/screenshot.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/screenshot.webp" width="200"/></a><br><code>screenshot</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/transparent_window.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparent_window.webp" width="200"/></a><br><code>transparent_window</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/window_settings.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_settings.webp" width="200"/></a><br><code>window_settings</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/window_drag_move.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_drag_move.webp" width="200"/></a><br><code>window_drag_move</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/resizing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/resizing.webp" width="200"/></a><br><code>resizing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/minimizing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/minimizing.webp" width="200"/></a><br><code>minimizing</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/reflection_probes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/reflection_probes.webp" width="200"/></a><br><code>reflection_probes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/window_resizing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_resizing.webp" width="200"/></a><br><code>window_resizing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/drag_to_scroll.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/drag_to_scroll.webp" width="200"/></a><br><code>drag_to_scroll</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/math/cubic_splines.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/cubic_splines.webp" width="200"/></a><br><code>cubic_splines</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/math/random_sampling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/random_sampling.webp" width="200"/></a><br><code>random_sampling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/movement/smooth_follow.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/smooth_follow.webp" width="200"/></a><br><code>smooth_follow</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/2d_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_gizmos.webp" width="200"/></a><br><code>2d_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/3d_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_gizmos.webp" width="200"/></a><br><code>3d_gizmos</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/axes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/axes.webp" width="200"/></a><br><code>axes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/light_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/light_gizmos.webp" width="200"/></a><br><code>light_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/2d_text_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_text_gizmos.webp" width="200"/></a><br><code>2d_text_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/anchored_text_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anchored_text_gizmos.webp" width="200"/></a><br><code>anchored_text_gizmos</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/3d_text_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_text_gizmos.webp" width="200"/></a><br><code>3d_text_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/text_gizmos_font.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_gizmos_font.webp" width="200"/></a><br><code>text_gizmos_font</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/usage/debug_frustum_culling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/debug_frustum_culling.webp" width="200"/></a><br><code>debug_frustum_culling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/edit_material_on_gltf.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/edit_material_on_gltf.webp" width="200"/></a><br><code>edit_material_on_gltf</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/gltf_skinned_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gltf_skinned_mesh.webp" width="200"/></a><br><code>gltf_skinned_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/load_gltf.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/load_gltf.webp" width="200"/></a><br><code>load_gltf</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/query_gltf_primitives.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/query_gltf_primitives.webp" width="200"/></a><br><code>query_gltf_primitives</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/update_gltf_scene.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/update_gltf_scene.webp" width="200"/></a><br><code>update_gltf_scene</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/2d_top_down_camera.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_top_down_camera.webp" width="200"/></a><br><code>2d_top_down_camera</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/first_person_view_model.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/first_person_view_model.webp" width="200"/></a><br><code>first_person_view_model</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/projection_zoom.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/projection_zoom.webp" width="200"/></a><br><code>projection_zoom</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/camera_orbit.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/camera_orbit.webp" width="200"/></a><br><code>camera_orbit</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/2d_screen_shake.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_screen_shake.webp" width="200"/></a><br><code>2d_screen_shake</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/2d_on_ui.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_on_ui.webp" width="200"/></a><br><code>2d_on_ui</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/visibility_range.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/visibility_range.webp" width="200"/></a><br><code>visibility_range</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/camera_sub_view.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/camera_sub_view.webp" width="200"/></a><br><code>camera_sub_view</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/color_grading.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/color_grading.webp" width="200"/></a><br><code>color_grading</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/clearcoat.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clearcoat.webp" width="200"/></a><br><code>clearcoat</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/depth_of_field.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/depth_of_field.webp" width="200"/></a><br><code>depth_of_field</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/volumetric_fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/volumetric_fog.webp" width="200"/></a><br><code>volumetric_fog</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/anisotropy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anisotropy.webp" width="200"/></a><br><code>anisotropy</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/fog_volumes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/fog_volumes.webp" width="200"/></a><br><code>fog_volumes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/scrolling_fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scrolling_fog.webp" width="200"/></a><br><code>scrolling_fog</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/movement/physics_in_fixed_timestep.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/physics_in_fixed_timestep.webp" width="200"/></a><br><code>physics_in_fixed_timestep</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/post_processing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/post_processing.webp" width="200"/></a><br><code>post_processing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/rotate_environment_map.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rotate_environment_map.webp" width="200"/></a><br><code>rotate_environment_map</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/mesh_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh_picking.webp" width="200"/></a><br><code>mesh_picking</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/simple_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/simple_picking.webp" width="200"/></a><br><code>simple_picking</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/sprite_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_picking.webp" width="200"/></a><br><code>sprite_picking</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/dragdrop_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/dragdrop_picking.webp" width="200"/></a><br><code>dragdrop_picking</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animation_masks.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animation_masks.webp" width="200"/></a><br><code>animation_masks</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/pcss.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pcss.webp" width="200"/></a><br><code>pcss</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/mixed_lighting.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mixed_lighting.webp" width="200"/></a><br><code>mixed_lighting</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_ui.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_ui.webp" width="200"/></a><br><code>animated_ui</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material_bindless.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material_bindless.webp" width="200"/></a><br><code>shader_material_bindless</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/tab_navigation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tab_navigation.webp" width="200"/></a><br><code>tab_navigation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/directional_navigation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/directional_navigation.webp" width="200"/></a><br><code>directional_navigation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/directional_navigation_overrides.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/directional_navigation_overrides.webp" width="200"/></a><br><code>directional_navigation_overrides</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/clustered_decals.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clustered_decals.webp" width="200"/></a><br><code>clustered_decals</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/light_textures.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/light_textures.webp" width="200"/></a><br><code>light_textures</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/extended_material_bindless.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/extended_material_bindless.webp" width="200"/></a><br><code>extended_material_bindless</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/usage/cooldown.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/cooldown.webp" width="200"/></a><br><code>cooldown</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/hotpatching_systems.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/hotpatching_systems.webp" width="200"/></a><br><code>hotpatching_systems</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/standard_widgets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/standard_widgets.webp" width="200"/></a><br><code>standard_widgets</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/standard_widgets_observers.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/standard_widgets_observers.webp" width="200"/></a><br><code>standard_widgets_observers</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/scrollbars.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scrollbars.webp" width="200"/></a><br><code>scrollbars</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/settings.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/settings.webp" width="200"/></a><br><code>settings</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/persisting_window_settings.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/persisting_window_settings.webp" width="200"/></a><br><code>persisting_window_settings</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/clustered_decal_maps.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clustered_decal_maps.webp" width="200"/></a><br><code>clustered_decal_maps</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/mirror.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mirror.webp" width="200"/></a><br><code>mirror</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/pccm.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pccm.webp" width="200"/></a><br><code>pccm</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/light_probe_blending.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/light_probe_blending.webp" width="200"/></a><br><code>light_probe_blending</code></td></tr> </table>
dotnet run --project BevyCSharp.Examples -- 3d_scene
./bcs open --example lighting --offscreen # serving, for ./bcs to drive and capture
Install
dotnet add package BevyCSharp
The package carries the managed library, the source generator and a prebuilt bridge per platform.
The program above, in a new console project with the package added, is a game, and dotnet run
opens its window:
dotnet new console -o MyGame && cd MyGame
dotnet add package BevyCSharp
# Spin.cs and Program.cs as above
dotnet run
On Linux the bridge's audio links ALSA, so the bridge needs ALSA's library to load, libasound2
(libasound2t64 on Ubuntu 24.04 and Debian 13) or alsa-lib on Fedora and Arch, which a desktop
has and a container usually does not, and drawing needs a Vulkan driver. Where there is no display,
as in a container or on a build server, BCS_OFFSCREEN=1 draws into an image instead of a window
and BCS_FRAMES ends the run after that many frames. Mesa's software Vulkan (mesa-vulkan-drivers)
draws where there is no graphics card:
BCS_OFFSCREEN=1 BCS_FRAMES=120 dotnet run
The package workflow follows these steps in a container holding the .NET SDK and the package alone.
Guide
The guide in docs/ is for somebody using the engine, a page an area. Everything in
it is Bevy's own, bridged rather than reimplemented, so a Transform written from C# is the
transform the renderer reads and a sound played from C# is an entity in the same world.
| CHEATSHEET.md | Every public method of the library on one line, grouped as the pages are |
| Behaviors | Systems and components, stages, the fixed timestep, filters, conditions and threads |
| States | A game's modes, systems scoped to them, and code run as they change |
| Messages and the hierarchy | One system telling another, code run the moment something happens, and entities parented |
| Components | Bevy's components from C#, the rest through reflection, lists and maps, visibility |
| Scenes and saves | Data assets, scene files, instances, saved games and types that change |
| Assets and models | Loading from a folder, an assembly or a pack, and glTF models |
| Drawing | Meshes and materials made in code, and meshlets |
| Materials and textures | Bevy's physically based material and its images |
| Shaders | Materials and passes written in Slang, compiled and reloaded as the game runs |
| Compute | Compute shaders on their own and on a camera |
| Cameras and light | Cameras, shadows, the picture a camera makes and its lens |
| Reflections and the sky | Screen-space and probe reflections, the sky and light probes |
| Ray tracing | Bevy's ray-traced lighting and rays traced by a game |
| Images and the window | Drawing into an image, and the window |
| 2D | Sprites and flat cameras |
| Gizmos | Lines and shapes drawn for a frame |
| The interface | Bevy's nodes and text, and Dear ImGui for tools |
| Audio | Sounds and music, placed and mixed |
| Physics | Bodies, colliders, joints, contacts and characters over BepuPhysics |
| Input | Typed text, the input method, touches and gamepads |
| Math | Shapes as values, points sampled in them, bounding volumes and casts, and cubic curves |
| Running a game | In a window, headless or offscreen, and behaviors reloaded while it runs |
| Making a game | Courtyard, a small game from an empty project to an export |
| The tools | The editor, its console, and driving a running app |
| How it works | Inside, between C# and Bevy |
| Compared with Bevy | What is the same, what it adds, what it costs, and what was measured |
Driving a running app
./bcs drives a running app from a terminal, the editor, a game or an example, answering in JSON,
which is how a change is checked without a person at the window:
./bcs open --editor --offscreen # start one, detached, with no display needed
./bcs command entity.set Cube Transform.Translation 0,2.5,0
./bcs command input.hold W,D 12 # keys held for twelve frames, inside the app
./bcs shot after.png # the next frame, as a PNG
./bcs stop
A game adds commands of its own with [Command] on a static method, and
the tools page has the rest.
Status and limitations
Early. The behavior system, the ECS bridge and the schedule work and are covered by tests that run against a real Bevy app. Bevy's own examples are the measure of how much of it is reached:
Of Bevy's 421 examples, 292 are written in C# here and 16 more in part, 0 more can be with what is bridged, 55 wait on something the bridge lacks and 58 are about Rust itself (EXAMPLES.md).
Known gaps:
- A locally built package contains only the platform you built it on. Use the CI workflow, or
run
build-native.shon each target platform, to produce a package covering all of them. - A render build draws. Mesh primitives, textured physically based materials, cameras, lights,
sprites, gizmos, UI nodes and text are reachable from a behavior script, verified on Vulkan. glTF
files and
.scnscenes load and spawn, audio plays, and a camera tonemaps, blooms, multisamples, antialiases, scatters a sky over what it draws, pulls focus and finds its own exposure. What is thin is the layer above that. A model's clips play one at a time, sprites step through no frames of their own, and a compressed texture a desktop GPU cannot decode is not transcoded. .github/TODO.md lists what each gap needs. - The library compiles no C# at runtime, so a game carries no compiler. Behavior scripts loaded
while an app runs go through
BevyCSharp.Scripting, which the editor and the player reference and a game references only if it loads scripts itself, overApp.EnableDynamicSystemsandApp.RemoveSystemsBySource. - The editor's document is a scene file, with the hierarchy, entity references and Bevy's own
components kept, and primitives and materials made in memory written as how to make them again.
A mesh built vertex by vertex is written as its geometry, and a material can be kept in a
*.material.jsonof its own. .github/SCENES.md has what is left. - Five of Bevy's components are mirrored by hand, and the rest are reached through Bevy's reflection, by type path and JSON or through generated typed wrappers, at the cost of a serialization a call. A component holds a list, inline or in a managed store, and a dictionary in the same store, and shared values live in data assets of their own. .github/COMPONENTS.md plans generated mirrors.
- Component filters must be table-stored components, which is everything C# registers. A filter naming a Bevy-side sparse-set component is rejected rather than silently wrong.
- A cubemap comes from a file, as six square faces in a column, a row or a cross, or from a reflection probe that captures itself. One a game renders into with its own cameras, a layer at a time, has no bridge.
- Slang shaders compile with
slangc, which the build fetches. A machine without it draws what was compiled and cached on one that had it, and cannot compile an edit. - The renderer is open at fewer points than virtualized geometry, texture streaming, screen-space and world-space GI or reflections need. .github/RENDERING.md lists what each of those asks of an engine, what is here, what is missing, and the order it is built in.
Building from source
Using the package needs none of this, since it ships a prebuilt bridge for every supported platform. This is for working on the bridge itself.
build/build-native.sh # the headless bridge
dotnet build # what copies it beside each project's binaries
dotnet test BevyCSharp.Tests/BevyCSharp.Tests.csproj
The two halves are built separately, and a rebuilt bridge is invisible until a managed build copies
it, which is why the second line is not optional. build/build-native.sh --render adds the renderer
and --editor adds the interface on top of it.
.github/BUILDING.md has the rest: the three native profiles and what each costs, the platforms and their prerequisites, how the package is assembled for six runtime identifiers, and how a release is published.
Contributing
Prose in this repository follows .github/STYLE.md: no em dashes, no spaced hyphens as punctuation, no colon joining two clauses where a full stop or a "because" belongs, no padded section banners, and comments that explain why rather than restate the code.
License
Mozilla Public License 2.0. The full text is in LICENSE, and it ships inside the package. So does THIRD-PARTY-NOTICES.md, which names the work of others the package carries, Bevy and every crate the bridge is built from among it, each with its license and the notices its own files give, for a game shipped on the package to carry in turn.
MPL-2.0 is file-level copyleft, meaning changes to files that are part of this project have to stay under it and be made available in source form, while anything you build around it, including a game that references the package, is yours under whatever terms you like. Bevy itself is MIT and Apache-2.0, which this can incorporate freely.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BepuPhysics (>= 2.5.0-beta.29)
- Twizzle.ImGui-Bundle.NET (>= 1.91.5.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.