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? }
- each item shape:
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