using System; using UnityEngine; using TMPro; using UnityEngine.UI; namespace NEG.Localization { public class LocalizedText : MonoBehaviour { [SerializeField] private string key = ""; [SerializeField] private TMP_Text tmpText; [SerializeField] private Text text; private void Awake() => LocalizationManager.Register(SetText); private void OnDestroy() => LocalizationManager.Unregister(SetText); private void OnValidate() { if (tmpText != null || text != null) return; tmpText = GetComponent(); if (tmpText != null) return; text = GetComponent(); } private void SetText(LocalizationProvider ctx) { if (text != null) text.text = ctx.GetText(key); if (tmpText != null) tmpText.text = ctx.GetText(key); } #if UNITY_EDITOR public void SetTextForEditor() { if (text != null) text.text = "_" + key; if (tmpText != null) tmpText.text = "_" + key; } #endif } }