Skip to Content

Button

GnosisUIElementButton is a control element (elementId = "Button") for interactive UI actions.

It inherits GnosisUIElementControl, so it also uses control identity fields (viewId, controlIdMode, controlId) configured on the component.

Runtime parameters

In addition to built-in element parameters, GnosisUIElementButton supports:

  • label (string) — caption text assigned to the button label (TextMeshProUGUI).
  • onClickInvokes (list) — list of service invokes to execute on click.
    • each item shape: { service, function, parameters? }

Example — create a button under a view

GameUI.CreateButton.Example.cs
private GnosisFunctionResult CreateInventoryCloseButton() { if (Context?.Store == null || Context.CallService == null) return GnosisFunctionResult.Fail("No context"); var payload = GnosisNode.CreateObject(Context.Store); payload.Set("elementId", "Button"); payload.Set("parentId", "ui.InventoryView"); var parameters = GnosisNode.CreateObject(Context.Store); parameters.Set("name", "CloseButton"); parameters.Set("label", "Close"); var invokes = GnosisNode.CreateList(Context.Store); var pushView = GnosisNode.CreateObject(Context.Store); pushView.Set("service", "GameUI"); pushView.Set("function", "PushView"); var pushArgs = GnosisNode.CreateObject(Context.Store); pushArgs.Set("viewId", "game.panel.inventory"); pushArgs.Set("inTransitionId", "scalefade"); pushView.Set("parameters", pushArgs); invokes.Add(pushView); parameters.Set("onClickInvokes", invokes); parameters.Set("anchorMin", new GnosisVector2(1f, 1f)); parameters.Set("anchorMax", new GnosisVector2(1f, 1f)); parameters.Set("anchoredPosition", new GnosisVector2(-24f, -24f)); payload.Set("parameters", parameters); return CallService("GameUI", "CreateElement", payload); }

Example — JSON payload shape

{ "service": "GameUI", "function": "CreateElement", "parameters": { "elementId": "Button", "parentId": "ui.InventoryView", "parameters": { "name": "CloseButton", "label": "Close", "onClickInvokes": [ { "service": "GameUI", "function": "PushView", "parameters": { "viewId": "game.panel.inventory", "inTransitionId": "scalefade" } }, { "service": "Audio", "function": "PlaySound", "parameters": { "id": "ui.click", "volume": 0.9 } } ], "anchorMin": { "x": 1.0, "y": 1.0 }, "anchorMax": { "x": 1.0, "y": 1.0 }, "anchoredPosition": { "x": -24.0, "y": -24.0 } } } }

Example — inspect schema via DescribeUIElement

GameUI.DescribeButton.Example.cs
private GnosisFunctionResult DescribeButtonElement() { if (Context?.Store == null || Context.CallService == null) return GnosisFunctionResult.Fail("No context"); var payload = GnosisNode.CreateObject(Context.Store); payload.Set("elementId", "Button"); return CallService("GameUI", "DescribeUIElement", payload); }
Last updated on