No-code UI bindings for scenes where designers should connect data to text and progress visuals without writing one-off view scripts.
Demo: Samples/Demo/Scenes/NoCode/NoCodeBindingDemo.unity — runtime-built UI via NeoDemoShell, controller Samples/Demo/Scripts/Shell/NoCodeBindingDemoController.cs.
NoCode is a data-binding layer for UI, not hidden gameplay logic in the Inspector. New behavior must expose a testable C# contract and have EditMode or PlayMode coverage before adding Inspector convenience around it.
NoCode runs on scene components. ScriptableObject assets must not store scene object references; if a setup lives in an SO, store only data, keys, or context slots, and assign concrete GameObject references on the scene component.
Current ComponentFloatBinding contract:
- data sources are readable fields and readable non-indexed properties only;
- methods addressed by string name are not valid sources and are never invoked;
ReactivePropertyFloat,ReactivePropertyInt, andReactivePropertyBoolare supported source values;GameObject.Findis allowed only as an explicitFind By Namefallback with a retry interval, not as the primary architecture.
For business rules, keep the rule in a normal C# component or service, test it there, and expose only the final field, property, or reactive state to NoCode.
| Component | Purpose |
|---|---|
NoCodeBindText |
Reads a numeric source (float/int/ReactiveProperty*) and pushes it into SetText, TimeToText, TMP, or compatible text targets. |
NoCodeFormattedText |
Formats one or more resolved values into a template string before writing to UI. |
SetProgress |
Writes normalized progress into Slider/Image-style visual targets. |
- Select the source object.
- Select the source component, field, or property exposed by the resolver.
- Select the target UI component.
- Configure formatting, clamping, or progress range when needed.
The module is intended for Inspector-driven prototypes and reusable UI screens. It intentionally does not support arbitrary method invocation by string.