60 lines
1.5 KiB
C#
60 lines
1.5 KiB
C#
![]() |
// ***********************************************************************
|
|||
|
// Assembly : Unity
|
|||
|
// Author : Kimch
|
|||
|
// Created : 2018-03-29
|
|||
|
//
|
|||
|
// Last Modified By :
|
|||
|
// Last Modified On :
|
|||
|
// ***********************************************************************
|
|||
|
// <copyright file= "KUIToggleGroup" company="Kunpo"></copyright>
|
|||
|
// <summary></summary>
|
|||
|
// ***********************************************************************
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.Events;
|
|||
|
using UnityEngine.UI;
|
|||
|
|
|||
|
[RequireComponent(typeof(ToggleGroup))]
|
|||
|
public class KUIToggleGroup : MonoBehaviour
|
|||
|
{
|
|||
|
public class ToggleEvent : UnityEvent<int>
|
|||
|
{
|
|||
|
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<Toggle>(true);
|
|||
|
foreach (var toggle in _toggles)
|
|||
|
{
|
|||
|
toggle.onValueChanged.AddListener(OnToggleValueChanged);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|