BITKit/Packages/Runtime/UX/Core/UXRadioButtonGroup.cs

32 lines
1003 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEngine.Events;
using System.Linq;
namespace BITKit.UX
{
public class UXRadioButtonGroup : UXElement<RadioButtonGroup>
{
[Header(Constant.Header.Events)]
public UnityEvent<int> onSelectedIndex = new();
public UnityEvent<string> onSelectedValue = new();
public void Set(List<string> list)
{
visualElement.choices = list;
visualElement.SetValueWithoutNotify(0);
}
public override void OnStart()
{
base.OnStart();
visualElement.RegisterValueChangedCallback(OnSelected);
}
void OnSelected(ChangeEvent<int> indexEvent)
{
var list = visualElement.choices;
var value = list.ElementAt(indexEvent.newValue);
onSelectedIndex.Invoke(indexEvent.newValue);
onSelectedValue.Invoke(value);
}
}
}