À propos du projet

Bevy Lunex est un moteur de mise en page retenu conçu pour le framework Bevy ECS (Entity Component System) en Rust. Il permet aux développeurs de créer des interfaces personnalisées à l'aide de composants et de systèmes ECS standard, plutôt que selon des modèles d'interface graphique en mode immédiat. Les capacités clés incluent : - Modèle de mise en page retenu : la mise en page est calculée une fois et stockée, ce qui réduit la surcharge de recalcul par rapport aux systèmes d'interface graphique en mode immédiat. Cela offre des avantages de performance pour les interfaces statiques ou rarement mises à jour. - Disposition de flux de type flexbox : le modèle intégré UiLayout::flow() prend en charge le ajustement au contenu, le remplissage de l'espace, le dimensionnement relatif et le retour à la ligne du texte, inspiré du système de mise en page Clay. - Prise en charge du rapport d'aspect : le moteur est conçu pour gérer toutes les tailles de fenêtre et tous les rapports d'aspect sans déformation, les types de mise en page réagissant intuitivement aux changements de taille. - Interface 2D et 3D (espace-monde) : en s'appuyant sur le composant Transform de Bevy, Lunex prend en charge les éléments d'interface 2D plats et 3D spatiaux, permettant une intégration diégétique de l'interface dans les jeux. - Styles multi-états : des composants comme UiColor et UiLayout permettent de définir des mises en page et des couleurs pour différents états tels que base et survol, avec des vitesses de transition configurables. - Interactivité native ECS : les événements de survol, de clic et de pointeur sont gérés via des observateurs et des systèmes, rendant le comportement de l'interface entièrement composable avec le reste d'une application Bevy. La bibliothèque met l'accent sur une conception un composant par fonctionnalité, où générer un élément d'interface implique de combiner des composants comme UiLayout, UiHover, UiColor et des composants pickable/rendering dans le style ECS standard de Bevy. La documentation est disponible via le Lunex Book et Docs.rs, avec également un projet d'exemple prêt pour la production appelé Bevypunk.