Logo
UI Elements

Radial Slider

Adjust a value around a circular track

Overview

Radial Slider maps a numeric range to an arc. Use it for knobs, circular progress controls, and settings that benefit from a compact dial.

Preview

Usage

Create a Radial Slider prefab.

Set the value range, start angle, and angle range.

Assign its handle and Procedural Shape fill.

Bind On Value Changed to receive the actual value.


Tips

  • Choose clockwise or counterclockwise movement and enable continuous drag if the pointer should pass smoothly across the angular boundary.
  • Value text supports NumberDisplayFormat, a display multiplier, and a text template.

Public API

Use RadialSlider in the Evo.UI namespace.

Value uses the configured numeric range; NormalizedValue uses 0–1.

Properties

NameTypeDescription
ValuefloatCurrent value, clamped to the range.
NormalizedValuefloatValue expressed from 0 to 1.
MinValuefloatLower bound.
MaxValuefloatUpper bound.
WholeNumbersboolRounds to whole numbers.

Fields

NameTypeDescription
angleRangefloatSize of the interactive arc in degrees.
startAnglefloatAngle where the arc starts.
clockwiseboolDirection in which values increase.
continuousDragboolAllows continuous angular dragging.
fillImageProceduralShapeProcedural Shape used for the fill.

Methods

NameParametersDescription
SetValueWithoutNotify()float inputChanges the value without invoking its event.
Refresh()NoneRefreshes references and visuals.

Events

NameTypeDescription
onValueChangedUnityEvent<float>Invoked with the actual numeric value.

Example

RadialSliderExample.cs
using UnityEngine;
using Evo.UI;

public class RadialSliderExample : MonoBehaviour
{
    [SerializeField] private RadialSlider target;

    private void Start()
    {
        target.MinValue = 0f;
        target.MaxValue = 100f;
        target.Value = 35f;
        target.onValueChanged.AddListener(value => Debug.Log($"Dial: {value}"));
    }

    public void SetHalfway()
    {
        target.NormalizedValue = 0.5f; // Equivalent to Value = 50 in this range.
    }
}

On this page