using System; using UnityEngine; using UnityEngine.UI; using BaseGames.Localization; namespace BaseGames.UI.MainMenu { /// /// 主菜单按钮视图(显式序列化绑定,对照 风格)。 /// 由 据配置实例化并 。 /// 标签走 ,随语言切换自动刷新。 /// [DisallowMultipleComponent] public class MainMenuButtonView : MonoBehaviour { [SerializeField] private Button _button; [SerializeField] private LocalizedText _label; [Tooltip("按钮图标(可空)。")] [SerializeField] private Image _icon; public Button Button => _button; /// 绑定标签 Key、图标与点击回调。 public void Bind(string labelKey, Sprite icon, Action onClick) { if (_label != null) _label.SetKey(labelKey); if (_icon != null) { _icon.sprite = icon; _icon.enabled = icon != null; } if (_button != null) { _button.onClick.RemoveAllListeners(); if (onClick != null) _button.onClick.AddListener(() => onClick()); } } public void SetInteractable(bool value) { if (_button != null) _button.interactable = value; } } }