using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; public class TabGroup : MonoBehaviour { public event Action OnTabChange; private TabButton[] _tabButtons; private TabButton _currentButton; private void Start() { _tabButtons = GetComponentsInChildren(); foreach (var thisButton in _tabButtons) { thisButton.OnClick += () => { if (_currentButton != null) { _currentButton.CurrentState = FlatButtonState.Unselected; _currentButton.Tab.gameObject.SetActive(false); } _currentButton = thisButton; _currentButton.CurrentState = FlatButtonState.Selected; _currentButton.Tab.gameObject.SetActive(true); OnTabChange?.Invoke(_currentButton); }; thisButton.Tab.gameObject.SetActive(false); } _tabButtons.First().OnPointerClick(null); } }