#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