[Documentation] | [Roadmap] | [Discussions]
Binding System 2 is a vast improvement over the original version. It gives you the power to link a field directly in inspector to other properties or fields, even very deeply nested ones.
This may seem simple at first, but it opens a world of possibilities:
► Create complete UI systems linked to a few "config" files, like themes, palettes and labels, all with instant updates without going into Play mode.
► Make scripts modular and highly reusable. Let them control other scripts without direct dependencies, like 3D sliders opening doors, motors increasing pressure, switches turning on lights.
► Have a complete Dependency Injection system at various granularities. Greatly increase re-use of components.
► Work with SOAP (Scriptable Object Architecture Pattern) on another level. Link even deeply nested properties from scriptable objects and switch them when needed.
► Let effects adapt to your game logic, like changing particle systems color and speed based on character's health.
► Link materials properties to game values, like metal glowing red on high temperatures or let transparency adapt to object density.
► Change light properties based on flashlight remaining energy.
► and so many others...
★ Note to programmers: this leads to increased modularity between objects and a better architecture overall.
✔ The setup is straightforward: import the asset, right click on a field and have your first bound field already...
Once a field is bound, there are plenty of options to manipulate the binding with converters, simple yet powerful modifiers and advanced tools like accessor providers...
★ High-Level Features:
⦿ Quick Data Binding: Instantly connect serialized values to any property, even non serialized ones, directly in Unity Editor without any code manipulation.
⦿ Two Binding Approaches: Bind any compatible field for any object directly in Inspector (even Unity's own components), or transform your scripts' fields in code to bindable counterparts for maximum performance.
⦿ Non-Destructive Bind: Bind any compatible field without altering its internal data and without changing its code structure.
⦿ Intuitive Setup: The user interface is as user-friendly and non-intrusive as it gets with a searchable dropdown menu for efficient binding configuration.
⦿ Real-Time Debugging: Identify and resolve issues with Live Debug and error visualizations. Get to see how data flows during runtime.
⦿ Custom Extensibility: The system can be easily extended with new converters, modifiers, and value providers, thus adding new capabilities to the system.
⦿ Optimized Performance: The whole system architecture was built to provide high-performance operations, optimized reflection, and methods generation with virtually no memory allocations.
This asset is like "a solution in search of problems" and trust us, you will find plenty of problems that this solution will solve...
Unlike Binding System v1, this asset is provided with its source code!
For Samples, check the documentation on how to enable them.
IMPORTANT! If you're upgrading from version 1, please read the documentation on how to upgrade without friction.
2.2.6
- Added two-way OnChange event for bound fields.
- Fixed an issue which prevented modifiers to be added.
2.2.5
- Moved Bindings folder from Assets to Packages (contact me in case of issues).
- Fixed some integration issues with Odin Inspector.
- Fixed issues with Undo operations leading (in some rare cases) to decreased performance.
- Fixed other small issues.
2.2.4
- Added Boolean Expressions with their respective modifier.
- Fixed an issue with bindings in subassets.
- Fixed some cosmetic issues.
2.2.3
- Fixed a compile error on some Windows machines.
2.2.2
- Added a new update point for bindings: just before and after rendering.
- Added logic to trigger binding updates directly from Unity Events in Inspector.
- Fixed small issues.
2.2.1
- Improved Bindings Dependencies window to handle multiple objects and folders at once. Added drag&drop to easily search dependencies.
- Repackaged part of material bindings logic.
- Fixed small issues.
2.2.0
- Added a Bindings Dependencies window, which asynchronously searches for dependencies of a specifed object. Check the documentation for more details.
- Added local search in dropdown menus. Local search will start searching only from current panel.
- Improved Refactor System. Now it handles automatically field renamings and [FormerlySerializedAs] attribute.
- Tons of small improvements and fixes under-the-hood.
2.1.2
- Fixed an issue preventing Bind<T> fields updating thier views with Odin Drawers.
- Fixed a rare issue related to refactorings.
2.1.1
- Added Refactor System, a powerfull tool which should help when code is changed and serialization may break, leading to invalid bindings.
- Improved Odin Inspector integration and fixed list related issues.
- Improved Bound Field popup functionality.
- Improved Field Rerouting, now it handles edge cases as well.
- Fixed Field Rerouting not being saved correctly when exiting Unity.
- Other small changes and fixes.
2.1.0
- Added Math Expressions modifiers. These are powerful and fast modififiers which apply arbitrarly complex math functions with variables and constants. They are available for all numeric fields, vectors and colors. For colors (and vectors), the channels can be mixed as well
- Added field rerouting in UI, now it is way much easier to reroute a field to a property for more control
- Added a new simpler demo (the one used in videos stripped of third party assets), which can be found under Samples folder
- Improved proxy binding handling with better support for undo - redo
- Fixed small issues, one of them would potentially block the usage of the system with Enter Play mode without domain reload mode
2.0.4
- Added field rerouting API, to use properties instead of fields in specific cases (check documetation for more details)
- Added Scenes Sanitization in settings, to remove erroneously added empty components
- Fixed empty proxy bindings being added when selecting game objects
- Fixed converters not being registered automatically
2.0.3
- Added limit to bind path depths, to avoid very complex recursive types blocking the system
- Added a minimum width to binding path popup menu
- Fixed wrong reference to documentation
2.0.2
- Added new converter for real to integer numbers, with option to select how to convert (round, ceil, etc.)
- Fixed issue when resetting a bound field
2.0.1
- Added support for more bindable fields
- Fixed long string preview issue in path dropdown
- Fixed issue with slim bind version not showing immediately
- Fixed issue with initial bind path field width
2.0.0
First release