Search Unity

  1. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[RELEASED] Binding System

Discussion in 'Assets and Asset Store' started by Geeorge, Nov 22, 2023.

  1. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14

    Hello everyone,
    I present you my first asset Binding System.
    This plugin allows binding of almost any type directly in the Inspector. It uses a complex system underneath to make the binding as performant as possible (in some cases it is as fast as setting the value directly), and another drawing system to make the binding as easy as possible in the Inspector. The binding can be done in code as well, for those who prefer it.

    Here is a quick animation which shows how it works in the Inspector.

    To have a bindable field, it is enough to make it
    Bind<T>
    where T is the type of the field. Another system will pick the type change and will allow the user to transfer the serialized data to the bindable field.

    Each bindable field can be altered through the use of converters and modifiers before returning the value to the user. This way, this system can be introduced for already developed components, without needing to reset the values from scratch.

    The system is fully extensible and anyone can evolve it to their needs. There are multiple automatic processes in place to register new modifiers, new converters and new data providers (another more advanced concept) without requiring user intervention.

    Here is a longer video showcasing the asset.



    Documentation: Binding System - Documentation

    Asset Store: https://assetstore.unity.com/packages/slug/261130


    Roadmap: Binding System | Trello

    Let me know what are your thoughts about this system...
     

    Attached Files:

    Last edited: Feb 23, 2024
    DragonCoder likes this.
  2. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Hey @Geeorge Thanks for Binding System. It was recommended on a @CodeMonkeyYT video - I'm sure you're aware - so I bought it just now and it looks really useful.

    One thing though, I'm getting constant errors now every time my code compiles:

    Code (CSharp):
    1. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentNullException: Value cannot be null.
    2. Parameter name: obj
    3.   at (wrapper managed-to-native) UnityEditor.PrefabUtility.GetCorrespondingObjectFromSource_internal(UnityEngine.Object)
    4.   at UnityEditor.PrefabUtility.GetCorrespondingObjectFromSource[TObject] (TObject componentOrGameObject) [0x00001] in /Users/bokken/build/output/unity/unity/Editor/Mono/Prefabs/PrefabUtility.cs:2417
    5.   at Postica.BindingSystem.Serialization.BindDatabase.TryCreatePrefabFile (System.String guid, Postica.BindingSystem.Serialization.BindDatabase+PrefabFile& prefabFile, System.Collections.Generic.HashSet`1[T] dependencies) [0x00049] in <3ce57564425c429abe18352a6410c920>:0
    6.   at Postica.BindingSystem.Serialization.BindDatabase.BuildPrefabFile (System.String guid, System.Collections.Generic.HashSet`1[T] dependencies) [0x00000] in <3ce57564425c429abe18352a6410c920>:0
    7.   at Postica.BindingSystem.Serialization.BindDatabase.RebuildPrefabs () [0x00065] in <3ce57564425c429abe18352a6410c920>:0
    8.   at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
    9.   at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <2ccb053bed3740ab940e67afec38ab31>:0
    10.    --- End of inner exception stack trace ---
    11.   at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <2ccb053bed3740ab940e67afec38ab31>:0
    12.   at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <2ccb053bed3740ab940e67afec38ab31>:0
    13.   at UnityEditor.EditorAssemblies.ProcessInitializeOnLoadMethodAttributes () [0x000a5] in /Users/bokken/build/output/unity/unity/Editor/Mono/EditorAssemblies.cs:145
    14. UnityEditor.EditorAssemblies:ProcessInitializeOnLoadMethodAttributes () (at /Users/bokken/build/output/unity/unity/Editor/Mono/EditorAssemblies.cs:149)
     
  3. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Hi @Colin_MacLeod, thanks for letting me know about the recommendation and thank you for purchasing the tool and letting me know about this issue. Will try to investigate and provide a fix with the next update.
    It would be really helpful if you could provide some additional context, like which version of Unity you're using.
     
  4. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319

    2022.3.15f1 with URP on macOS 14.0, Apple Silicon M2.

    The error may be specific to my project. I've had to remove Binding System from my project until it is sorted, and I'd very much like to help you find a solution. Let me know if you can give me a version with added debugging.

    I created a blank URP project and imported your asset. I didn't see that error, but this one appears as soon as I import:

    Code (CSharp):
    1. Unloading broken assembly Assets/BindingSystem/Editor/Burst/BindingSystem.Editor.dll, this assembly can cause crashes in the runtime
    This is reproducible. It happens every time I delete and re-import the asset from the package manager.

    Steps to reproduce on Unity 2022.3.16f1:

    1. Open Unity Hub
    2. Download the 3D URP template, if you don't have it
    3. Create a new project using the 3D URP Template
    4. Import Binding System from the asset store

    Here's the Code Monkey link, in case you didn't see it:
     
  5. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Great, thank you for all this info, will upload a fix later this week.

    On a side note, I am considering adding a logic to essentially allow having any field as bindable without touching a line of code (even for Unity built-in components). This will have some limitations, mostly the synchronization will happen at fixed points in player update loop, instead of being immediately propagated, but still, for most cases I think will be more than enough.

    I would like to know your thoughts about this idea.
     
  6. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Great - were you able to reproduce the effect? What about my original issue? Can you please share a version with debugging so we can track it down? Right now, I can't include the asset in my project because of all the noise it generates.

    Sounds intriguing. Assuming minimal impact on performance, I'd certainly be interested.

    My use case is scriptable objects to record shared information. I was hoping Binding System would let me arbitrarily bind various bools, ints, floats, and strings to these shared objects.

    For example, I have a bool on almost all behaviors to enable/disable logging. It would be nice to be able to bind all of those bools to a single Debug value on a shared scriptable object in the project, so I can disable trace logging from one place. Or, maybe a group of similar objects could be tied to one bool to enable logging on just that one group.

    I'd also love to be able to still use the inspector attributes such as Range - and even the Sirenix Odin Inspector attributes.
     
  7. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    I was able to reproduce the dll issue, but it is not an issue. It shows the error because it requires an additional compilation to apply the correct define symbols. For your issue, I have added some additional safety checks which should help you out with your issue. The new version should be hopefully available till the end of this week.

    This looks like a perfect fit for BInding System. Let me know if there are more specific things on your mind so I can adjust the system accordingly.

    This is already possible with the version you're having. Just add the [Bind] attribute over other attributes and it will push the inner value to other attributes.
    Code (CSharp):
    1.  
    2. [Bind]
    3. [Range(0, 1)]
    4. public Bind<float> myFloat;
    5.  
    Binding System already supports Sirenix Odin Inspector, although with some small limitations. There are some Sirenix attributes (such as AssetOnly) which are propagated to the bound value.
     
    Colin_MacLeod likes this.
  8. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    That's very clever. I've been using this scriptable object approach for some time, though with a more primitive reference class (e.g. IntReference) in place of the primitive, so it can be bound later. The disadvantage of that approach was always the loss of the Sirenix Odin inspector enhancements - particularly range sliders.

    I'm looking forward to trying it again with the new version!
     
  9. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Hi @Geeorge, how's it looking with the new release?
     
  10. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Hi @Colin_MacLeod, sorry for the delayed response. The new version has been submitted (1.0.2), it should be available in around 2-3 business days.
     
    Colin_MacLeod likes this.
  11. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    The new version 1.0.2 is available on Asset Store. It fixes the install issues found in projects with Burst Compiler (hence the URP issue, thanks @Colin_MacLeod) and occasional fail of AutoConversion logic.
    For the Burst compiler issue, it is advisable to remove BindingSystem assemblies found in Library->Script Assemblies, otherwise Unity may continue showing the same error.
     
    Colin_MacLeod likes this.
  12. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    @Geeorge I installed version 1.0.2, but for my game, it generates a lot of error messages in Unity Editor.
    Shutting down Unity, deleting the Library folder, and restarting Unity does not resolve.

    This was on Unity 2022.3.17f1 running on macOS 14.2.1 on Apple Silicon.

    These are recurring errors:

    Code (csharp):
    1. Library/PackageCache/com.unity.collections@2.1.4/Unity.Collections.CodeGen/CecilExtensionMethods.cs(9,31): error CS0234: The type or namespace name 'Cil' does not exist in the namespace 'Mono.Cecil' (are you missing an assembly reference?)
    Code (csharp):
    1. Library/PackageCache/com.unity.collections@2.1.4/Unity.Collections.CodeGen/JobReflectionDataPostProcessor.cs(11,37): error CS0234: The type or namespace name 'MethodAttributes' does not exist in the namespace 'Mono.Cecil' (are you missing an assembly reference?)

    Code (csharp):
    1. Library/PackageCache/com.unity.collections@2.1.4/Unity.Collections.CodeGen/JobReflectionDataPostProcessor.cs(13,35): error CS0234: The type or namespace name 'TypeAttributes' does not exist in the namespace 'Mono.Cecil' (are you missing an assembly reference?)
    upload_2024-1-19_9-31-27.png

    Deleting the Assets/BindingSystem folder removes the errors.
     
  13. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Thank you @Colin_MacLeod for pointing to this issue. Apparently Collections and other Unity packages depend on the same library the Binding System is using (albeit with a different version).

    I have just re-published a new version (1.0.3) which should be available early next week and should fix all assembly clashing issues.
     
    Colin_MacLeod likes this.
  14. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Thanks, @Geeorge. I'll check it out.
     
  15. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Hi everyone, the version 1.0.3 is now live on Asset Store.

    @Colin_MacLeod could you please let me know if the issues you're facing have been addressed?
     
  16. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    @Geeorge I installed it from the asset store just now, after which Unity crashed.
    Started it up again → crash before the editor was shown. Nothing obvious in Editor.log. Here's the tail:

    Code (csharp):
    1. - Loaded All Assemblies, in  0.761 seconds
    2. Refreshing native plugins compatible for Editor in 3.86 ms, found 4 plugins.
    3. Preloading 0 native plugins for Editor in 0.00 ms.
    4. Refreshing native plugins compatible for Editor in 5.51 ms, found 4 plugins.
    5. Native extension for WindowsStandalone target not found
    6. Native extension for OSXStandalone target not found
    7. Assembly reference Packages/com.unity.entities/Unity.Scenes.Editor/Internals/Properties/Unity.Properties.Internals.asmref has no target assembly definition
    8. TypeManager.Initialize took: 538ms
    9. Launching external process: /Applications/Unity/Hub/Editor/2022.3.17f1/Unity.app/Contents/Tools/UnityShaderCompiler
    10. Launched and connected shader compiler UnityShaderCompiler after 0.04 seconds
    11. Mono: successfully reloaded assembly
    12. info: Microsoft.Hosting.Lifetime[0]
    13.       Application is shutting down...
    14. info: Unity.ILPP.Runner.PostProcessingAssemblyLoadContext[0]
    15.       ALC ILPP context 1 is unloading
    Deleted Library & started again → still crashing.
    Deleted Assets/BindingSystem & started again → looks OK (currently still starting up)

    Unity 2023.3.17f1 on macOS 14.2.1 (Apple Silicon/M2 Pro).

    Would you like to access my git repo to try to see if you can reproduce?
     
  17. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    @Colin_MacLeod I tried with a similar setup, but no issues were detected.

    That would be very helpful. My github account is GeeorgePostica.
     
  18. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    I shared the details in a private forum conversation just now. Really hoping we can get to the bottom of it!
     
  19. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Hi everyone,
    The version 1.0.4 is already available on Asset Store, it brings a couple of bug fixes (thanks @Colin_MacLeod) and improves the splash screen experience.
     
  20. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    @Geeorge, I'm still seeing anomalies. There were a number of errors when I imported BindingSystem into the project. I didn't capture those.

    Unity 2023.3.18f1 on macOS 14.2.1 (Apple Silicon/M2 Pro).

    This error is re-appearing when the scripts recompile:

    Code (csharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. Postica.BindingSystem.Serialization.BindDatabase.IsValidScriptableObjectType (System.Type t) (at <e550877f6be34210ae5744868d0448d7>:0)
    3. Postica.BindingSystem.Serialization.BindDatabase+<>c.<GetAllScriptedTypes>b__38_0 (System.Type t) (at <e550877f6be34210ae5744868d0448d7>:0)
    4. System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    5. System.Linq.Enumerable+ConcatIterator`1[TSource].MoveNext () (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    6. System.Linq.Enumerable+SelectEnumerableIterator`2[TSource,TResult].MoveNext () (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    7. System.Linq.Enumerable.Contains[TSource] (System.Collections.Generic.IEnumerable`1[T] source, TSource value, System.Collections.Generic.IEqualityComparer`1[T] comparer) (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    8. System.Linq.Enumerable.Contains[TSource] (System.Collections.Generic.IEnumerable`1[T] source, TSource value) (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    9. Postica.BindingSystem.Serialization.BindDatabase.GetAllScriptedTypes () (at <e550877f6be34210ae5744868d0448d7>:0)
    10. Postica.BindingSystem.Serialization.BindDatabase.BuildDatabase () (at <e550877f6be34210ae5744868d0448d7>:0)
    11. Postica.BindingSystem.Serialization.BindDatabase.RebuildTree () (at <e550877f6be34210ae5744868d0448d7>:0)
    12. Postica.BindingSystem.Serialization.BindDatabase.get_Database () (at <e550877f6be34210ae5744868d0448d7>:0)
    13. Postica.BindingSystem.Serialization.Reserializer.OnPostprocessAllAssets (System.String[] importedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromAssetPaths, System.Boolean didDomainReload) (at <e550877f6be34210ae5744868d0448d7>:0)
    14. System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <fd2d3e9b010a4ba4b3fdc0456cd6b40b>:0)
    15. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    16. System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <fd2d3e9b010a4ba4b3fdc0456cd6b40b>:0)
    17. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <fd2d3e9b010a4ba4b3fdc0456cd6b40b>:0)
    18. UnityEditor.AssetPostprocessingInternal.InvokeMethod (System.Reflection.MethodInfo method, System.Object[] args) (at /Users/bokken/build/output/unity/unity/Editor/Mono/AssetPostprocessor.cs:1168)
    19. UnityEditor.AssetPostprocessingInternal.PostprocessAllAssets (System.String[] importedAssets, System.String[] addedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromPathAssets, System.Boolean didDomainReload) (at /Users/bokken/build/output/unity/unity/Editor/Mono/AssetPostprocessor.cs:395)
    20. UnityEditor.AssetPostprocessingInternal:PostprocessAllAssets(String[], String[], String[], String[], String[], Boolean) (at /Users/bokken/build/output/unity/unity/Editor/Mono/AssetPostprocessor.cs:408)

    upload_2024-1-29_15-52-56.png


    Also:

    Code (csharp):
    1. Exception thrown while invoking [DidReloadScripts] method 'Postica.BindingSystem.Serialization.BindDatabase:RebuildTree ()' : NullReferenceException: Object reference not set to an instance of an object
    2. Postica.BindingSystem.Serialization.BindDatabase.IsValidScriptableObjectType (System.Type t) (at <e550877f6be34210ae5744868d0448d7>:0)
    3. Postica.BindingSystem.Serialization.BindDatabase+<>c.<GetAllScriptedTypes>b__38_0 (System.Type t) (at <e550877f6be34210ae5744868d0448d7>:0)
    4. System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    5. System.Linq.Enumerable+ConcatIterator`1[TSource].MoveNext () (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    6. System.Linq.Enumerable+SelectEnumerableIterator`2[TSource,TResult].MoveNext () (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    7. System.Linq.Enumerable.Contains[TSource] (System.Collections.Generic.IEnumerable`1[T] source, TSource value, System.Collections.Generic.IEqualityComparer`1[T] comparer) (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    8. System.Linq.Enumerable.Contains[TSource] (System.Collections.Generic.IEnumerable`1[T] source, TSource value) (at <2bcf4fe59a1e4290a8c851a306d34b0f>:0)
    9. Postica.BindingSystem.Serialization.BindDatabase.GetAllScriptedTypes () (at <e550877f6be34210ae5744868d0448d7>:0)
    10. Postica.BindingSystem.Serialization.BindDatabase.BuildDatabase () (at <e550877f6be34210ae5744868d0448d7>:0)
    11. Postica.BindingSystem.Serialization.BindDatabase.RebuildTree () (at <e550877f6be34210ae5744868d0448d7>:0)
    12.  
    upload_2024-1-29_15-54-39.png
     
  21. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    @Geeorge 1.0.5 is looking great. I'm not seeing any errors.

    Thank you so much - I'm very excited to try it out!
     
  22. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    The custom editor you made is very cool. Neat but unobtrusive. Love it.

    Your asset is a big improvement over the home-grown reference classes I've been using till now.
     
  23. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Thank you @Colin_MacLeod for all your feedback. Really appreciate it. Looking forward to share with you next development features once they are ready.
    It would really help if you could leave a review on the asset store, this would help improve the visibility of this tool.
     
    Colin_MacLeod likes this.
  24. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Thank you, yes, I certainly will given a bit more time working with the tool.
     
  25. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Hey @Geeorge, is there any way you could include a foldout to the actual values on the target.

    So, for example, I have a list of strings here - would it be possible to include a foldout under the Path, where the pink arrow is:
    upload_2024-2-5_8-35-40.png

    So, insert something like this showing the default Unity drawer at that point:
    upload_2024-2-5_8-36-32.png

    I'm not sure this is possible, but it would be extremely useful. Right now, you have to do a couple of clicks to see the values of bound variables.
     
  26. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Hi @Colin_MacLeod,
    If I understood correctly, you need a way to see the current value pointed by the path?

    This is not possible right now, but it shouldn't take long to implement.
     
    Colin_MacLeod likes this.
  27. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Yes, that was the idea. Not essential, of course, but it would be a really useful extension. TY!
     
  28. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    @Geeorge is this file auto-generated?

    Code (csharp):
    1. Assets/BindingSystem/Init/Runtime/AutoRegistrations.cs
    If so, should I ignore it in version control? We are getting conflicts as multiple users generate the file at the same time.
     
  29. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Often, the "changes" appear to be merely ordering. If possible it would be good if the order were always respected when it's generated, so version control wouldn't recognize it as a change at all

    upload_2024-2-9_15-0-16.png
     
  30. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    It looks like the Odin Required attribute is not reflected on a Bind value.
    Code (CSharp):
    1. [Bind]
    2. [BoxGroup("Settings"), SerializeField, Required]
    3. private Bind<string> _category = new (null);
    upload_2024-2-10_11-53-34.png

    It may not be possible, but it would be nice if the Odin attribute still referred to the value rather than the Bind.

    Code (CSharp):
    1. [BoxGroup("Settings"), SerializeField, Required]
    2. private string _category = null;
    upload_2024-2-10_11-56-21.png
     

    Attached Files:

  31. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    @Geeorge, are you okay? It's been ten days since you were last on the forum
     
  32. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Hi @Colin_MacLeod, I had to focus on some family matters. Strangely enough, I didn't get any notification about new posts in the forum.
    Yes this is auto-generated, you can ignore it in your source control.

    It may be possible, I need to find an intelligent way to have this functionality on all attributes, kind of like with non-Odin attributes. Already added it on the roadmap.

    Thank you for your concern, really appreciate it.
     
  33. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Oh, good - thanks for the reply. It seems there is something fishy about the forum notifications. You're the second person this week who told me that.
     
  34. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    @Geeorge Adding a
    Range
    attribute to a
    Bind<float>
    does seem to work, which is really cool, but it still generates this inspector error:
    upload_2024-2-22_20-10-46.png

    upload_2024-2-22_20-10-25.png

    I don't suppose you can do much about that.
     
  35. Geeorge

    Geeorge

    Joined:
    Sep 3, 2013
    Posts:
    14
    Hi @Colin_MacLeod, this error is still related to Odin attributes.
    I have updated the original post to include the Roadmap link (Binding System | Trello) where you can see the ongoing progress and next features. If you're a Trello user, you can as well vote for features, to change their priorities.
     
  36. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    319
    Ah, OK. Thank you!