# Binding System 2
Binding System 2 brings advanced and fast binding capabilities to Unity. Link any field to any other compatible field or property out of the box, without adding a line of code!
## AssetStore
### Description
**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.
### Technical details
- Potentially any inspector field can be bound in Components, Transforms, MonoBehaviours, Scriptable Objects, Materials, etc.
- High Performance with Mono and IL2CPP backends.
- Virtually Zero Allocations when updating values.
- No black magic behind, like assembly reweaving.
- Full C# code available.
## Change log
### **2.3.4** - July 6, 2025
- Fixed an issue where broken preview values will block the bind path dropdown from showing up.
### **2.3.3** - July 1, 2025
- Fixed a regression introduced with version 2.3.2.
### **2.3.2** - June 30, 2025
- Added **Enum Converters**, which map enum values to any other value, with zero memory allocations at runtime.
- Added Variable Update Rate controls, for a more fine-grained control over when to update values.
- Added option to update values only when underlying source value has changed.
- Added a family of enhanced converters when parsing strings to decimal numbers.
- Fixed a rare issue where missing objects would sometimes throw an exception when trying to create a new bind.
- Fixed an issue where scene objects from AssetBundles could be updated when not yet in scene
### **2.3.1** - June 16, 2025
- Fixed a regression bug where objects with same name and same parent won't update.
- Fixed an issue where binding gameobject's activation field won't enable immediately.
### **2.3.0** - June 14, 2025
- Added **Tween Modifiers** family, which are a set of powerful modifiers to animate bound values.
- Added **Delay Modifiers** family, which allows to delay a bound value for a specific time. dded possibility to bind components and gameobjects activations.
- Fixed an issue where duplicated evaluations were happening in Editor.
- Fixed issues related to unwanted memory allocations.
- Fixed Odin Inspector erroneous bind field drawing. Improved overall look and feel of some components.
### **2.2.6** - Apr 28, 2025
- Added two-way OnChange event for bound fields.
- Fixed an issue which prevented modifiers to be added.
### **2.2.5** - Apr 11, 2025
- 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** - Mar 10, 2025
- Added Boolean Expressions with their respective modifier.
- Fixed an issue with bindings in subassets.
### **2.2.2** - Mar 06, 2025
- Added _Rende_r update point to bindings and the logic to manually update a binding field. Check [documentation](https://postica.gitbook.io/binding-system-2/product/binding-values#bindings-update-points) for more details.
- Fixed small issues.
### **2.2.1** - Mar 03, 2025
- Improved **Bindings Dependencies** window to handle multiple objects and folders at once. Added drag&drop to easily search dependencies. Check [documentation](https://postica.gitbook.io/binding-system-2/product/troubleshooting/bindings-dependencies) for more details.
- Repackaged part of material bindings logic.
- Fixed small issues.
### **2.2.0** - Feb 22, 2025
- Added a **Bindings Dependencies** window, which asynchronously searches for dependencies of a specifed object. Check the [documentation](https://postica.gitbook.io/binding-system-2/product/troubleshooting/bindings-dependencies) 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** - Feb 9, 2025
- Fixed an issue preventing `Bind<T>` fields updating their views with Odin Drawers.
- Fixed a rare issue related to refactorings.
### **2.1.1** - Feb 7, 2025
- Added **Refactor System**, a powerfull tool which should help when code is changed and serialization may break, leading to invalid bindings. Check [documentation](https://postica.gitbook.io/binding-system-2/product/troubleshooting/refactoring).
- 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** - Jan 29, 2025
- Added **Math Expressions** modifiers. These are powerful and fast modifiers which apply arbitrarily 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 (check [documentation](https://postica.gitbook.io/binding-system-2/product/extending-the-system/bind-rerouting))
- 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** - Jan 22, 2025
- Added field rerouting API, to use properties instead of fields in specific cases (check [documetation](https://postica.gitbook.io/binding-system-2/product/extending-the-system/bind-rerouting) 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** - Jan 20, 2025
- 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** - Jan 16, 2025
- 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** - Jan 15, 2025
- Added support for more bindable fields
- Fixed long string preview issue in path dropdown
- Fixed issue with initial bind path field width
### **2.0.0** - Jan 14, 2025
- Initial Release