#nullable enable
using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using UVC.Extention;
namespace UVC.UI.Tab
{
///
/// 단일 탭 버튼의 UI를 관리하는 컴포넌트입니다.
///
public class TabButtonView : MonoBehaviour
{
[Tooltip("탭 버튼 컴포넌트")]
[SerializeField] private Button? button;
[Tooltip("탭 이름을 표시할 Text 컴포넌트")]
[SerializeField] private TextMeshProUGUI? tabText;
[Tooltip("탭 아이콘을 표시할 Image 컴포넌트")]
[SerializeField] private Image? tabIcon;
[Tooltip("탭 배경 이미지 컴포넌트")]
[SerializeField] private Image? background;
[Tooltip("탭이 활성화되었을 때의 배경 색상")]
[SerializeField] private Color activeColor = Color.white;
[Tooltip("탭이 비활성화되었을 때의 배경 색상")]
[SerializeField] private Color inactiveColor = Color.gray;
[Tooltip("탭이 활성화되었을 때의 배경 색상")]
[SerializeField] private Color activeTextColor = Color.black;
[Tooltip("탭이 비활성화되었을 때의 배경 색상")]
[SerializeField] private Color inactiveTextColor = Color.white;
private int _tabIndex;
private Action? _onTabSelected;
private void Awake()
{
// Button 컴포넌트가 할당되지 않은 경우 자동으로 찾기
if (button == null)
button = GetComponent