/// <summary> /// /// </summary> internal static void RebuildFontAssetCache() { // Iterate over loaded font assets to update affected font assets foreach (var pair in s_FontAssetReferences) { FontAssetRef fontAssetRef = pair.Value; FontAsset fontAsset = fontAssetRef.fontAsset; if (fontAsset == null) { // Remove font asset from our lookup dictionaries s_FontAssetNameReferenceLookup.Remove(fontAssetRef.nameHashCode); s_FontAssetFamilyNameAndStyleReferenceLookup.Remove(fontAssetRef.familyNameAndStyleHashCode); // Add font asset to our removal list s_FontAssetRemovalList.Add(pair.Key); continue; } fontAsset.InitializeCharacterLookupDictionary(); fontAsset.AddSynthesizedCharactersAndFaceMetrics(); } // Remove font assets in our removal list from our font asset references for (int i = 0; i < s_FontAssetRemovalList.Count; i++) { s_FontAssetReferences.Remove(s_FontAssetRemovalList[i]); } s_FontAssetRemovalList.Clear(); TextEventManager.ON_FONT_PROPERTY_CHANGED(true, null); }
/// <summary> /// /// </summary> private void LoadStyleDictionaryInternal() { if (m_StyleLookupDictionary == null) { m_StyleLookupDictionary = new Dictionary <int, TextStyle>(); } else { m_StyleLookupDictionary.Clear(); } // Read Styles from style list and store them into dictionary for faster access. for (int i = 0; i < m_StyleList.Count; i++) { m_StyleList[i].RefreshStyle(); if (!m_StyleLookupDictionary.ContainsKey(m_StyleList[i].hashCode)) { m_StyleLookupDictionary.Add(m_StyleList[i].hashCode, m_StyleList[i]); } } // Add Normal Style if it does not already exists int normalStyleHashCode = TextUtilities.GetHashCodeCaseInSensitive("Normal"); if (!m_StyleLookupDictionary.ContainsKey(normalStyleHashCode)) { TextStyle style = new TextStyle("Normal", string.Empty, string.Empty); m_StyleList.Add(style); m_StyleLookupDictionary.Add(normalStyleHashCode, style); } //// Event to update objects when styles are changed in the editor. TextEventManager.ON_TEXT_STYLE_PROPERTY_CHANGED(true); }