Expand description

bevy_ui_material

Materials for bevy UI Nodes

workflow

MIT licensed unsafe forbidden Crates.io Docs.rs dependency status

This bevy plugin changes the bevy_ui implementation using a material.

You might be interested in bevy_sprite_material which is a similar plugin for bevy_sprite instead of bevy_ui.

This plugin provides new implementation of the following bundles:

  • NodeBundle
  • ButtonBundle
  • ImageBundle

The new component bundles replaces the color field and the image field (Handle<Image>) by a material field (Handle<ColorMaterial>)

Objective

The goal of this plugin is to allow seamless edition of UI nodes image and color which was removed with bevy 0.6.

This is very useful if you have many nodes and you have, for example, various themes and don’t want to query every node to change its color.

If you have a dedicated artist, you probably don’t use the color tinting field anyway, so the base implementation is perfect for you. This is specifically if you want to “massively update” the color and maybe the image as well.

Disclaimer

This plugin is very straightforward, and simply plugs itself in the bevy_ui render pipeline (in the extraction stage). This system might be slower than the base implementation, because of the extra Handle involved.

Also, there might be compatibility issues, so feel free to open issues or merge requests.

This plugin should work fine if you use both the plugin and the base ui implementation

Structs

A UI node that is a button

A UI node that is an image

The basic UI node

Plugin ot use UI Nodes with materials