using System; using System.Collections.Generic; #if TEXTMESHPRO_INSTALLED using TMPro; #endif using UnityEngine; namespace EasyTalk.Localization { /// /// This class is used to store information about the fonts to use for various languages. /// [CreateAssetMenu(fileName = "Language Font Overrides", menuName = "EasyTalk/Localization/Language Font Overrides", order = 3)] [Serializable] public class LanguageFontOverrides : ScriptableObject { /// /// The List of language font overrides in this collection. /// [SerializeField] public List overrides = new List(); /// /// Checks the list of language font overrides for the specified language, and if found, returns the found language font override. /// /// The language for the language font override to retrieve. /// The language font override for the specified language, or null if one can't be found. public LanguageFontOverride GetOverrideForLanguage(string language) { foreach(LanguageFontOverride fontOverride in overrides) { if(fontOverride.languageCode.ToLower().Equals(language.ToLower()) || fontOverride.languageName.ToLower().Equals(language.ToLower())) { return fontOverride; } } return null; } } /// /// A class used to map a language to a particular font. /// [Serializable] public class LanguageFontOverride { /// /// The name of the language. /// [SerializeField] public string languageName; /// /// The ISO-639 language code for the language. /// [SerializeField] public string languageCode; /// /// The regular font to use for the language. /// [SerializeField] public Font font; #if TEXTMESHPRO_INSTALLED /// /// The TextMeshPro font to use for the language. /// [SerializeField] public TMP_FontAsset tmpFont; #endif /// /// The minimum font size to use when displaying the language. /// [SerializeField] public float minFontSize = 12.0f; /// /// The maximum font size to use when display the language. /// [SerializeField] public float maxFontSize = 32.0f; } }