/// <summary> /// Applies the formatting recorded in formattingToApply by SetFormattedText(). /// SetFormattedText() can't apply the formatting directly because it needs to /// run in OnGUI. /// </summary> protected void ApplyFormatting() { SetGUIStyle(); if (!(isFormattingApplied || (formattingToApply == null))) { text = formattingToApply.text; guiStyle = UnityGUITools.ApplyFormatting(formattingToApply, guiStyle); isFormattingApplied = true; } }
/// <summary> /// Draws the bark text using Unity GUI. /// </summary> public virtual void OnGUI() { GUI.skin = UnityGUITools.GetValidGUISkin(guiSkin); if (guiStyle == null) { guiStyle = UnityGUITools.ApplyFormatting(formattingToApply, new GUIStyle(UnityGUITools.GetGUIStyle(guiStyleName, GUI.skin.label))); guiStyle.alignment = TextAnchor.UpperCenter; size = guiStyle.CalcSize(new GUIContent(message)); if ((maxWidth >= 1) && (size.x > maxWidth)) { size = new Vector2(maxWidth, guiStyle.CalcHeight(new GUIContent(message), maxWidth)); } } UpdateBarkPosition(); guiStyle.normal.textColor = UnityGUITools.ColorWithAlpha(guiStyle.normal.textColor, alpha); if (screenPos.z < 0) { return; } Rect rect = new Rect(screenPos.x - (size.x / 2), (Screen.height - screenPos.y) - (size.y / 2), size.x, size.y); UnityGUITools.DrawText(rect, message, guiStyle, textStyle, textStyleColor); }