Complete native controls
This reference documents every current public declaration in this part of Pine. Examples run inside App.Mount(), a component factory, or an explicit UI.Root(...) unless they only create state/configuration. Explicit UI.Mount(...) remains available for advanced ownership. Variable names such as count, items and label refer to the typed values described by each example. All APIs run on Unity’s main thread.
UI.Button
public static Button Button(Value<string> text, Action click, params IProperty<Button>[] properties)
Creates a complete native Button with a background target graphic, centered TMP label, visible focus colors and an owned click handler. Text accepts literals or tracked getters. Mouse/touch and navigation submit are handled by Unity's compatible input module.
| Parameter | Meaning |
|---|---|
text | The typed text input (Value<string>); literals and supported reactive adapters follow this overload's documented behavior. |
click | Owned callback invoked by native pointer or navigation submit. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.Button(
text: "Increment",
click: () => count.Value++,
UI.Size(width: 240, height: 48)
);
public static Button Button(Func<string> text, Action click, params IProperty<Button>[] properties)
Creates a complete native Button with a background target graphic, centered TMP label, visible focus colors and an owned click handler. Text accepts literals or tracked getters. Mouse/touch and navigation submit are handled by Unity's compatible input module.
| Parameter | Meaning |
|---|---|
text | The typed text input (Func<string>); literals and supported reactive adapters follow this overload's documented behavior. |
click | Owned callback invoked by native pointer or navigation submit. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.Button(
text: "Increment",
click: () => count.Value++,
UI.Size(width: 240, height: 48)
);
UI.Toggle
public static Toggle Toggle(Source<bool> value, params IProperty<Toggle>[] properties)
Creates a complete native Toggle with background, checkmark and centered label. A Source<bool> provides two-way binding; Value<bool> provides source-to-control binding. Pine owns graphic wiring, default navigation and focus colors.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var enabled = UI.Source(value: false);
UI.Toggle(value: enabled, text: "Enabled", UI.Size(width: 240, height: 48));
public static Toggle Toggle(Source<bool> value, Value<string> text, params IProperty<Toggle>[] properties)
Creates a complete native Toggle with background, checkmark and centered label. A Source<bool> provides two-way binding; Value<bool> provides source-to-control binding. Pine owns graphic wiring, default navigation and focus colors.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
text | The typed text input (Value<string>); literals and supported reactive adapters follow this overload's documented behavior. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var enabled = UI.Source(value: false);
UI.Toggle(value: enabled, text: "Enabled", UI.Size(width: 240, height: 48));
public static Toggle Toggle(Value<bool> value, params IProperty<Toggle>[] properties)
Creates a complete native Toggle with background, checkmark and centered label. A Source<bool> provides two-way binding; Value<bool> provides source-to-control binding. Pine owns graphic wiring, default navigation and focus colors.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var enabled = UI.Source(value: false);
UI.Toggle(value: enabled, text: "Enabled", UI.Size(width: 240, height: 48));
public static Toggle Toggle(Value<bool> value, Value<string> text, params IProperty<Toggle>[] properties)
Creates a complete native Toggle with background, checkmark and centered label. A Source<bool> provides two-way binding; Value<bool> provides source-to-control binding. Pine owns graphic wiring, default navigation and focus colors.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
text | The typed text input (Value<string>); literals and supported reactive adapters follow this overload's documented behavior. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var enabled = UI.Source(value: false);
UI.Toggle(value: enabled, text: "Enabled", UI.Size(width: 240, height: 48));
UI.Slider
public static Slider Slider(Source<float> value, params IProperty<Slider>[] properties)
Creates a complete native Slider with background, fill and handle. A Source<float> is two-way and normalizes to native clamping; Value<float> is one-way. Bounds accept reactive finite values, including negative minima; maximum must be at least minimum.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var volume = UI.Source(value: 0.5f);
UI.Slider(
value: volume,
minimum: 0f,
maximum: 1f,
UI.Size(width: 240, height: 48)
);
public static Slider Slider(Source<float> value, Value<float> minimum, Value<float>? maximum, params IProperty<Slider>[] properties)
Creates a complete native Slider with background, fill and handle. A Source<float> is two-way and normalizes to native clamping; Value<float> is one-way. Bounds accept reactive finite values, including negative minima; maximum must be at least minimum.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
minimum | Reactive finite lower bound; negative values are supported. |
maximum | Reactive finite upper bound, at least the lower bound. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var volume = UI.Source(value: 0.5f);
UI.Slider(
value: volume,
minimum: 0f,
maximum: 1f,
UI.Size(width: 240, height: 48)
);
public static Slider Slider(Value<float> value, params IProperty<Slider>[] properties)
Creates a complete native Slider with background, fill and handle. A Source<float> is two-way and normalizes to native clamping; Value<float> is one-way. Bounds accept reactive finite values, including negative minima; maximum must be at least minimum.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var volume = UI.Source(value: 0.5f);
UI.Slider(
value: volume,
minimum: 0f,
maximum: 1f,
UI.Size(width: 240, height: 48)
);
public static Slider Slider(Value<float> value, Value<float> minimum, Value<float>? maximum, params IProperty<Slider>[] properties)
Creates a complete native Slider with background, fill and handle. A Source<float> is two-way and normalizes to native clamping; Value<float> is one-way. Bounds accept reactive finite values, including negative minima; maximum must be at least minimum.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
minimum | Reactive finite lower bound; negative values are supported. |
maximum | Reactive finite upper bound, at least the lower bound. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var volume = UI.Source(value: 0.5f);
UI.Slider(
value: volume,
minimum: 0f,
maximum: 1f,
UI.Size(width: 240, height: 48)
);
UI.Scrollbar
public static Scrollbar Scrollbar(Source<float> value, params IProperty<Scrollbar>[] properties)
Creates a complete native Scrollbar with a wired handle and target graphic. Source<float> binds two ways; Value<float> binds one way. Normalized size defaults to 0.2 and can be reactive.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var position = UI.Source(value: 0f);
UI.Scrollbar(value: position, UI.Size(width: 240, height: 24));
public static Scrollbar Scrollbar(Source<float> value, Value<float>? size, params IProperty<Scrollbar>[] properties)
Creates a complete native Scrollbar with a wired handle and target graphic. Source<float> binds two ways; Value<float> binds one way. Normalized size defaults to 0.2 and can be reactive.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
size | The typed size input (Value<float>?); literals and supported reactive adapters follow this overload's documented behavior. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var position = UI.Source(value: 0f);
UI.Scrollbar(value: position, UI.Size(width: 240, height: 24));
public static Scrollbar Scrollbar(Value<float> value, params IProperty<Scrollbar>[] properties)
Creates a complete native Scrollbar with a wired handle and target graphic. Source<float> binds two ways; Value<float> binds one way. Normalized size defaults to 0.2 and can be reactive.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var position = UI.Source(value: 0f);
UI.Scrollbar(value: position, UI.Size(width: 240, height: 24));
public static Scrollbar Scrollbar(Value<float> value, Value<float>? size, params IProperty<Scrollbar>[] properties)
Creates a complete native Scrollbar with a wired handle and target graphic. Source<float> binds two ways; Value<float> binds one way. Normalized size defaults to 0.2 and can be reactive.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
size | The typed size input (Value<float>?); literals and supported reactive adapters follow this overload's documented behavior. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var position = UI.Source(value: 0f);
UI.Scrollbar(value: position, UI.Size(width: 240, height: 24));
UI.TextField
public static TMP_InputField TextField(Source<string> value, params IProperty<TMP_InputField>[] properties)
Creates a complete TMP_InputField with a clipped text viewport, text component, placeholder and caret. Source<string> binds two ways; Value<string> binds one way. Native Unity supplies keyboard/IME behavior, and properties remain typed to the field.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var playerName = UI.Source(value: "");
UI.TextField(
value: playerName,
placeholder: "Name",
UI.CharacterLimit(limit: 24),
UI.Size(width: 240, height: 48)
);
public static TMP_InputField TextField(Source<string> value, Value<string> placeholder, params IProperty<TMP_InputField>[] properties)
Creates a complete TMP_InputField with a clipped text viewport, text component, placeholder and caret. Source<string> binds two ways; Value<string> binds one way. Native Unity supplies keyboard/IME behavior, and properties remain typed to the field.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
placeholder | The typed placeholder input (Value<string>); literals and supported reactive adapters follow this overload's documented behavior. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var playerName = UI.Source(value: "");
UI.TextField(
value: playerName,
placeholder: "Name",
UI.CharacterLimit(limit: 24),
UI.Size(width: 240, height: 48)
);
public static TMP_InputField TextField(Value<string> value, params IProperty<TMP_InputField>[] properties)
Creates a complete TMP_InputField with a clipped text viewport, text component, placeholder and caret. Source<string> binds two ways; Value<string> binds one way. Native Unity supplies keyboard/IME behavior, and properties remain typed to the field.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var playerName = UI.Source(value: "");
UI.TextField(
value: playerName,
placeholder: "Name",
UI.CharacterLimit(limit: 24),
UI.Size(width: 240, height: 48)
);
public static TMP_InputField TextField(Value<string> value, Value<string> placeholder, params IProperty<TMP_InputField>[] properties)
Creates a complete TMP_InputField with a clipped text viewport, text component, placeholder and caret. Source<string> binds two ways; Value<string> binds one way. Native Unity supplies keyboard/IME behavior, and properties remain typed to the field.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
placeholder | The typed placeholder input (Value<string>); literals and supported reactive adapters follow this overload's documented behavior. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var playerName = UI.Source(value: "");
UI.TextField(
value: playerName,
placeholder: "Name",
UI.CharacterLimit(limit: 24),
UI.Size(width: 240, height: 48)
);
UI.Dropdown
public static TMP_Dropdown Dropdown(Source<int> selected, Value<string[]> options, params IProperty<TMP_Dropdown>[] properties)
Creates a complete TMP_Dropdown with caption, inactive scrollable template, item toggle and label. Options and selection accept typed reactive inputs. Source<int> binds two ways and stays normalized when options change. Changed option names close an expanded native menu immediately; selection-only updates preserve its items. Reduced motion disables native fade travel.
| Parameter | Meaning |
|---|---|
selected | The typed selected input (Source<int>); literals and supported reactive adapters follow this overload's documented behavior. |
options | Typed reactive option labels in display order. Null is treated as an empty collection; changing names closes an expanded native menu to avoid stale choices. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var selection = UI.Source(value: 0);
UI.Dropdown(
selected: selection,
options: new[] { "Low", "High" },
UI.Size(width: 240, height: 48)
);
public static TMP_Dropdown Dropdown(Value<int> selected, Value<string[]> options, params IProperty<TMP_Dropdown>[] properties)
Creates a complete TMP_Dropdown with caption, inactive scrollable template, item toggle and label. Options and selection accept typed reactive inputs. Source<int> binds two ways and stays normalized when options change. Changed option names close an expanded native menu immediately; selection-only updates preserve its items. Reduced motion disables native fade travel.
| Parameter | Meaning |
|---|---|
selected | The typed selected input (Value<int>); literals and supported reactive adapters follow this overload's documented behavior. |
options | Typed reactive option labels in display order. Null is treated as an empty collection; changing names closes an expanded native menu to avoid stale choices. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
var selection = UI.Source(value: 0);
UI.Dropdown(
selected: selection,
options: new[] { "Low", "High" },
UI.Size(width: 240, height: 48)
);
UI.ScrollView
public static ScrollRect ScrollView(Component content, params IProperty<ScrollRect>[] properties)
Creates a complete native ScrollRect with a clipped viewport and drag-receiving surface. Native content results attach without losing their identity; a construction getter builds content within a fill-width, auto-height host. Scrolling is vertical by default and axes can be configured explicitly.
| Parameter | Meaning |
|---|---|
content | Native scroll content or scoped construction callback; the viewport is supplied internally. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.ScrollView(
content: UI.Column(UI.AutoHeight(), UI.Children(UI.Label(text: "Content"))),
UI.Size(width: 300, height: 120)
);
public static ScrollRect ScrollView(Func<Component> content, params IProperty<ScrollRect>[] properties)
Creates a complete native ScrollRect with a clipped viewport and drag-receiving surface. Native content results attach without losing their identity; a construction getter builds content within a fill-width, auto-height host. Scrolling is vertical by default and axes can be configured explicitly.
| Parameter | Meaning |
|---|---|
content | Native scroll content or scoped construction callback; the viewport is supplied internally. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.ScrollView(
content: UI.Column(UI.AutoHeight(), UI.Children(UI.Label(text: "Content"))),
UI.Size(width: 300, height: 120)
);
UI.Progress
public static Image Progress(Value<float> value, params IProperty<Image>[] properties)
Creates a native horizontal filled Image backed by a generated white sprite. Progress is clamped between zero and one and supports typed reactive values/getters. Apply Tint, Size and other Image-compatible declarations normally.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.Progress(value: () => health.Value / 100f, UI.Size(width: 300, height: 20));
public static Image Progress(Func<float> value, params IProperty<Image>[] properties)
Creates a native horizontal filled Image backed by a generated white sprite. Progress is clamped between zero and one and supports typed reactive values/getters. Apply Tint, Size and other Image-compatible declarations normally.
| Parameter | Meaning |
|---|---|
value | The typed value or reactive input to read/apply; sources remain observable for the owning lifetime. |
properties | Compatible typed declarations to apply; incompatible component/property combinations are rejected at compilation. |
Returns: The live native component, owned by the active scope. Retain it for direct native access or typed UI.Apply; reactive bindings update this same instance.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.Progress(value: () => health.Value / 100f, UI.Size(width: 300, height: 20));
UI.Placeholder
public static IProperty<TMP_InputField> Placeholder(Value<string> text)
Binds the text of a completely wired TMP_InputField placeholder. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
text | The typed text input (Value<string>); literals and supported reactive adapters follow this overload's documented behavior. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.TextField(value: playerName, UI.Placeholder(text: "Name"));
public static IProperty<TMP_InputField> Placeholder(Func<string> text)
Binds the text of a completely wired TMP_InputField placeholder. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
text | The typed text input (Func<string>); literals and supported reactive adapters follow this overload's documented behavior. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.TextField(value: playerName, UI.Placeholder(text: "Name"));
UI.CharacterLimit
public static IProperty<TMP_InputField> CharacterLimit(Value<int> limit)
Binds the native text-field character limit; zero means unlimited and negative limits are rejected. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
limit | The typed limit input (Value<int>); literals and supported reactive adapters follow this overload's documented behavior. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.TextField(value: playerName, UI.CharacterLimit(limit: 24));
UI.SliderDirection
public static IProperty<Slider> SliderDirection(Value<Slider.Direction> direction)
Binds the native slider direction. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
direction | The typed direction input (Value<Slider.Direction>); literals and supported reactive adapters follow this overload's documented behavior. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.Slider(
value: volume,
UI.SliderDirection(direction: UnityEngine.UI.Slider.Direction.BottomToTop)
);
UI.WholeNumbers
public static IProperty<Slider> WholeNumbers(Value<bool> enabled)
Binds whether the native slider rounds values to whole numbers. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
enabled | The typed enabled input (Value<bool>); literals and supported reactive adapters follow this overload's documented behavior. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.Slider(
value: count,
minimum: 0f,
maximum: 10f,
UI.WholeNumbers(enabled: true)
);
UI.ScrollbarDirection
public static IProperty<Scrollbar> ScrollbarDirection(Value<Scrollbar.Direction> direction)
Binds the native scrollbar direction. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
direction | The typed direction input (Value<Scrollbar.Direction>); literals and supported reactive adapters follow this overload's documented behavior. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.Scrollbar(
value: position,
UI.ScrollbarDirection(
direction: UnityEngine.UI.Scrollbar.Direction.BottomToTop
)
);
UI.ScrollAxes
public static IProperty<ScrollRect> ScrollAxes(Value<bool> horizontal, Value<bool> vertical)
Binds horizontal and vertical scroll-axis enablement. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
horizontal | The typed horizontal input (Value<bool>); literals and supported reactive adapters follow this overload's documented behavior. |
vertical | The typed vertical input (Value<bool>); literals and supported reactive adapters follow this overload's documented behavior. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.ScrollView(
content: content,
UI.ScrollAxes(horizontal: false, vertical: true)
);
UI.ScrollPosition
public static IProperty<ScrollRect> ScrollPosition(Value<Vector2> position)
Binds native normalized scroll position; layout and movement settings remain native ScrollRect behavior. Literal values apply once; typed reactive values and Value-wrapped getters stay bound for the active ownership scope.
| Parameter | Meaning |
|---|---|
position | Typed immediate position or reactive native position, as specified by this overload. |
Returns: A compatible property operation to apply within a live ownership scope.
Ownership: Construct and apply declarations on Unity's main thread within UI.Mount, UI.Root or a live Scope.Run. Literal assignments occur once; reactive observers and handlers end with their owning scope.
UI.ScrollView(
content: content,
UI.ScrollPosition(position: new UnityEngine.Vector2(x: 0, y: 1))
);
