using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI; public class MyToggleButton : Selectable, IPointerClickHandler { public string isOnActiveStr; public string notOnActiveStr; public event UnityAction valueChange; public Text acticveStr; [SerializeField] bool isOn; public bool IsOn { set { this.isOn = value; if (acticveStr != null) { if (isOn) { acticveStr.text = LocalizationManager.Get(isOnActiveStr); } else { acticveStr.text = LocalizationManager.Get(notOnActiveStr); } } valueChange?.Invoke(isOn); } get { return isOn; } } // Start is called before the first update protected override void Start() { IsOn = isOn; LocalizationManager.LanguageChanged += OnLanguageChanged; } private void OnLanguageChanged() { if (acticveStr != null) acticveStr.text = LocalizationManager.Get(isOn ? isOnActiveStr : notOnActiveStr); } protected override void OnDestroy() { LocalizationManager.LanguageChanged -= OnLanguageChanged; } public void OnPointerClick(PointerEventData eventData) { IsOn = !isOn; } }