Slider
GnosisUIElementSlider is a control element (elementId = "Slider") for numeric range input.
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, GnosisUIElementSlider supports:
direction(string) - one of:LeftToRight,RightToLeft,BottomToTop,TopToBottomminValue(float)maxValue(float)wholeNumbers(bool)value(float)onValueChangedInvokes(list) - list of service invokes to execute on slider value changes.- each item shape:
{ service, function, parameters? } - runtime adds/updates
valueon the invoke payload before calling the function
- each item shape:
Example - create a slider under a view
GameUI.CreateSlider.Example.cs
private GnosisFunctionResult CreateMasterVolumeSlider()
{
if (Context?.Store == null || Context.CallService == null)
return GnosisFunctionResult.Fail("No context");
var payload = GnosisNode.CreateObject(Context.Store);
payload.Set("elementId", "Slider");
payload.Set("parentId", "ui.SettingsView");
var parameters = GnosisNode.CreateObject(Context.Store);
parameters.Set("name", "MasterVolumeSlider");
parameters.Set("direction", "LeftToRight");
parameters.Set("minValue", 0f);
parameters.Set("maxValue", 1f);
parameters.Set("wholeNumbers", false);
parameters.Set("value", 0.75f);
var invokes = GnosisNode.CreateList(Context.Store);
var setVolume = GnosisNode.CreateObject(Context.Store);
setVolume.Set("service", "Audio");
setVolume.Set("function", "SetMasterVolume");
var setVolumeArgs = GnosisNode.CreateObject(Context.Store);
setVolumeArgs.Set("channel", "master");
setVolumeArgs.Set("value", 0f); // Placeholder; runtime overwrites this with live slider value.
setVolume.Set("parameters", setVolumeArgs);
invokes.Add(setVolume);
parameters.Set("onValueChangedInvokes", invokes);
payload.Set("parameters", parameters);
return CallService("GameUI", "CreateElement", payload);
}Example - JSON payload shape
{
"service": "GameUI",
"function": "CreateElement",
"parameters": {
"elementId": "Slider",
"parentId": "ui.SettingsView",
"parameters": {
"name": "MasterVolumeSlider",
"direction": "LeftToRight",
"minValue": 0.0,
"maxValue": 1.0,
"wholeNumbers": false,
"value": 0.75,
"onValueChangedInvokes": [
{
"service": "Audio",
"function": "SetMasterVolume",
"parameters": {
"channel": "master",
"value": 0.0
}
}
]
}
}
}Example - inspect schema via DescribeUIElement
GameUI.DescribeSlider.Example.cs
private GnosisFunctionResult DescribeSliderElement()
{
if (Context?.Store == null || Context.CallService == null)
return GnosisFunctionResult.Fail("No context");
var payload = GnosisNode.CreateObject(Context.Store);
payload.Set("elementId", "Slider");
return CallService("GameUI", "DescribeUIElement", payload);
}Last updated on