// ***********************************************************************
// Assembly : Unity
// Author : Kimch
// Created : 2018-03-29
//
// Last Modified By :
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
[RequireComponent(typeof(ToggleGroup))]
public class KUIToggleGroup : MonoBehaviour
{
public class ToggleEvent : UnityEvent
{
public ToggleEvent()
{
}
}
public readonly ToggleEvent onToggleSelected = new ToggleEvent();
private Toggle[] _toggles;
public Toggle[] toggles => _toggles;
private void OnToggleValueChanged(bool value)
{
if (value)
{
for (int i = 0; i < _toggles.Length; i++)
{
if (_toggles[i].isOn)
{
onToggleSelected.Invoke(i);
break;
}
}
}
}
#region MonoBehaviour
private void Awake()
{
_toggles = GetComponentsInChildren(true);
foreach (var toggle in _toggles)
{
toggle.onValueChanged.AddListener(OnToggleValueChanged);
}
}
#endregion
}