public void OnLanguageChanged(string inNewLanguage) { if (m_Widget == null) { return; } string font_name = m_FontName; if (m_FontName == "Default") { font_name = "NewFont"; } GUIBase_FontEx newFont = null; if ("English.Old" == inNewLanguage) { newFont = MFFontManager.GetFont(m_FontName, SystemLanguage.English) as GUIBase_FontEx; } else { newFont = MFFontManager.GetFont(font_name) as GUIBase_FontEx; } if (newFont != m_Font) { m_Font = newFont; m_Widget.ChangeMaterial(m_Font.fontMaterial); } SetRegenerationNeeded(); }
public static void Release() { if (Instance != null) { Instance.StopAllCoroutines(); Instance.CancelInvoke(); Instance._Prepare(""); Instance = null; } }
// ========================================================================================================================= // === MonoBehaviour functions ============================================================================================= void Awake() { if (Application.isPlaying) { if (Instance) { Destroy(this.gameObject); return; } } Instance = this; // preload default/english fonts... //Instance._Prepare(GuiOptions.convertLanguageToFullName[(int)GuiOptions.language]); }
public static GUIBase_FontBase GetFont(string inFontName, SystemLanguage inLanguage) { #if UNITY_EDITOR if (Instance == null && Application.isEditor == true && Application.isPlaying == false) { // fix some strange bug in editor... Instance of FontManager is somettimes lost in editor. Instance = GetManager_InEditor(); Instance._Prepare("English", true); } #endif if (Instance == null) { return(null); } return(Instance._GetFont(inFontName, inLanguage)); }
public static void OnLanguageChanged(string inNewLanguage) { MFFontManager.Prepare(inNewLanguage); // reinitialize all labels... GUIBase_Label[] labels = Object.FindObjectsOfType(typeof(GUIBase_Label)) as GUIBase_Label[]; foreach (GUIBase_Label label in labels) { label.OnLanguageChanged(inNewLanguage); } // reinitialize all text areas... GUIBase_TextArea[] textAreas = Object.FindObjectsOfType(typeof(GUIBase_TextArea)) as GUIBase_TextArea[]; foreach (GUIBase_TextArea text in textAreas) { text.OnLanguageChanged(inNewLanguage); } }
public void OnLanguageChanged(string inNewLanguage) { if (m_Widget == null) { return; } if ("English.Old" == inNewLanguage) { ChangeFont(MFFontManager.GetFont("Default")); } else { string font_name = m_FontName; if (m_FontName == "Default") { font_name = "NewFont"; } ChangeFont(MFFontManager.GetFont(font_name)); } }
// ================================================================================================== // === Default MoneBehaviour interface ============================================================== #region MoneBehaviourInterface public void Start() { m_Widget = GetComponent <GUIBase_Widget>(); m_Widget.RegisterUpdateDelegate(RegenerateSprites); m_Widget.RegisterCallback(this, (int)E_CallbackType.E_CT_INIT); m_Widget.m_TextScaleFix_HACK = true; if (m_TextID <= 0 && string.IsNullOrEmpty(m_Text)) { m_Text = "This-is-temporary-test-for-testing-TextArea-auto-wrap. This is tooooooo long line. \n\n" + "This is temporary test for testing TextArea auto wrap. This is tooooooo long line. " + "This is temporary test for testing TextArea auto wrap. This is tooooooo long line."; //m_Text = "Test"; } if (m_Font == null) { //m_Font = MFGuiManager.Instance.GetFontForLanguage(SystemLanguage.English); m_Font = MFFontManager.GetFont(m_FontName) as GUIBase_FontEx; } SetRegenerationNeeded(); }
//--------------------------------------------------------- void RegenerateSprites() { if (m_RegenerateSprites == false || m_Widget.IsVisible() == false) { return; } if (m_Font == null) { m_Font = MFFontManager.GetFont(m_FontName) as GUIBase_FontEx; if (m_Font == null) { Debug.LogError(gameObject.GetFullName() + " Can't load font with name " + m_FontName); return; } } if (m_TextID > 0) { m_Text = TextDatabase.instance[m_TextID]; } // destroy old text if any exist... int maxSprites = text != null && text.Length > 0 ? Mathf.CeilToInt(text.Length * 0.1f) * 10 : 0; m_Widget.PrepareSprites(maxSprites); if (text != null && text.Length > 0) { Vector3 scale = transform.lossyScale; scale = Vector3.one; // setup cursor ... Vector2 leftUpPos = new Vector2(m_Widget.GetOrigPos().x - m_Widget.GetWidth() * 0.5f * scale.x, m_Widget.GetOrigPos().y - m_Widget.GetHeight() * 0.5f * scale.y); Vector2 cursor = leftUpPos; float maxLineSize = m_Widget.GetWidth() * scale.x; scale.x = m_TextScale.x; scale.y = m_TextScale.y; List <TextLine> textLines = GetLines(text, m_Font, alignment, maxLineSize, scale, lineSpace, IsForTextField); if (textLines == null || textLines.Count <= 0) { return; } float fontHeight = m_Font.GetFontHeight(); m_TextSize = new Vector2(m_Widget.GetWidth(), textLines.Count * fontHeight * scale.y + (textLines.Count - 1) * lineSpace * fontHeight * scale.y); float width; Rect spriteRect, texRect; int spriteIdx = 0; foreach (TextLine line in textLines) { cursor = leftUpPos + line.m_Offset; for (int i = line.m_StartIndex; i < line.m_EndIndex; ++i) { int character = text[i]; if (!IsForTextField && character == ' ') { cursor.x += line.m_SpaceWidth; continue; } switch (character) { case '\n': Debug.LogWarning("function GetLines doesn't work correctly"); break; default: { if (m_Font.GetCharDescription(text[i], out width, out spriteRect, out texRect, false, false, false)) { Vector2 inCharSize = new Vector2(spriteRect.width * scale.x, spriteRect.height * scale.y); Vector2 inCharCenter = cursor + new Vector2(spriteRect.center.x * scale.x, 0.0f); m_Widget.SetTextureCoords(spriteIdx, (int)texRect.x, (int)texRect.y, (int)texRect.width, (int)texRect.height); m_Widget.UpdateSpritePosAndSize(spriteIdx, inCharCenter.x, inCharCenter.y, inCharSize.x, inCharSize.y); m_Widget.ShowSprite(spriteIdx, true); cursor.x += width * scale.x; spriteIdx++; } break; } } } } // hide all unused sprites while (spriteIdx < maxSprites) { m_Widget.SetTextureCoords(spriteIdx, 0.0f, 0.0f, 0.0f, 0.0f); m_Widget.UpdateSpritePosAndSize(spriteIdx, 0.0f, -Screen.height, 1.0f, 1.0f); m_Widget.ShowSprite(spriteIdx, false); spriteIdx++; } } // we have to force widget update. m_RegenerateSprites = false; m_Widget.SetModify(); }
/* * private IEnumerator LogLeakedObjects() * { * yield return new WaitForSeconds(3); * * Names = null; * LogLeaked(); * * yield return new WaitForEndOfFrame(); * * yield return StartCoroutine(LoadScene("level_01")); * yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_02")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_03")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_04")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_05")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_06")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_07")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_08")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_09")); * // yield return new WaitForSeconds(5); * // yield return StartCoroutine(LoadScene("level_10")); * // yield return new WaitForSeconds(5); * * yield return StartCoroutine(LoadScene("Empty")); * * yield return new WaitForEndOfFrame(); * yield return new WaitForEndOfFrame(); * yield return new WaitForEndOfFrame(); * yield return Resources.UnloadUnusedAssets(); * * LogLeaked(); * } */ void ClearInstances() { InputManager.FlushInput(); AgentActionFactory.Clear(); Player.Clear(); GuiFrontendIngame.Clear(); if (GameCamera.Instance) { GameCamera.Instance.StopAllCoroutines(); GameCamera.Instance.CancelInvoke(); GameCamera.Instance = null; } if (CombatEffectsManager.Instance) { CombatEffectsManager.Instance.StopAllCoroutines(); CombatEffectsManager.Instance.CancelInvoke(); CombatEffectsManager.Instance = null; } if (ProjectileManager.Instance) { ProjectileManager.Instance.StopAllCoroutines(); ProjectileManager.Instance.CancelInvoke(); ProjectileManager.Instance = null; } if (Mission.Instance) { Mission.Instance.StopAllCoroutines(); Mission.Instance.CancelInvoke(); Mission.Instance = null; } if (BloodFXManager.Instance) { BloodFXManager.Instance.StopAllCoroutines(); BloodFXManager.Instance.CancelInvoke(); BloodFXManager.Instance = null; } if (CamExplosionFXMgr.Instance) { CamExplosionFXMgr.Instance.StopAllCoroutines(); CamExplosionFXMgr.Instance.CancelInvoke(); CamExplosionFXMgr.Instance = null; } if (WeaponManager.Instance) { WeaponManager.Instance.StopAllCoroutines(); WeaponManager.Instance.CancelInvoke(); WeaponManager.Instance = null; } if (GuiAchievements.Instance) { GuiAchievements.Instance.StopAllCoroutines(); GuiAchievements.Instance.CancelInvoke(); GuiAchievements.Instance = null; } //if (GuiCustomizeControls.Instance) { GuiCustomizeControls.Instance.StopAllCoroutines(); GuiCustomizeControls.Instance.CancelInvoke(); GuiCustomizeControls.Instance = null; } if (GuiEquipMenu.Instance) { GuiEquipMenu.Instance.StopAllCoroutines(); GuiEquipMenu.Instance.CancelInvoke(); GuiEquipMenu.Instance = null; } if (GuiSubtitlesRenderer.Instance) { GuiSubtitlesRenderer.Instance.StopAllCoroutines(); GuiSubtitlesRenderer.Instance.CancelInvoke(); GuiSubtitlesRenderer.Instance = null; } MFFontManager.Release(); if (MFGuiManager.Instance) { MFGuiManager.Instance.StopAllCoroutines(); MFGuiManager.Instance.CancelInvoke(); MFGuiManager.Instance = null; } }