32 lines
1003 B
C#
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);
|
|
}
|
|
}
|
|
} |