summaryrefslogtreecommitdiff
path: root/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-04-07 19:10:30 +0800
committerchai <chaifix@163.com>2021-04-07 19:10:30 +0800
commite7dfbec8e8634e767d78959941daf71a96e021cf (patch)
tree58895a7c60df0bd3f316e6461051eabd1c0a51e1 /Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font
parentff5a3fbf31db349db11bbc5c60ba199d26780f19 (diff)
*移动目录
Diffstat (limited to 'Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font')
-rw-r--r--Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs158
-rw-r--r--Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs.meta13
-rw-r--r--Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs67
-rw-r--r--Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs.meta13
4 files changed, 251 insertions, 0 deletions
diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs
new file mode 100644
index 0000000..760c9ee
--- /dev/null
+++ b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs
@@ -0,0 +1,158 @@
+using System;
+using UnityEngine.Serialization;
+
+namespace UnityEngine.UI
+{
+ /// <summary>
+ /// Labels reference specific font data used to draw them. This class contains that data.
+ /// </summary>
+
+ [Serializable]
+ public class FontData : ISerializationCallbackReceiver
+ {
+ [SerializeField]
+ [FormerlySerializedAs("font")]
+ private Font m_Font;
+
+ [SerializeField]
+ [FormerlySerializedAs("fontSize")]
+ private int m_FontSize;
+
+ [SerializeField]
+ [FormerlySerializedAs("fontStyle")]
+ private FontStyle m_FontStyle;
+
+ [SerializeField]
+ private bool m_BestFit;
+
+ [SerializeField]
+ private int m_MinSize;
+
+ [SerializeField]
+ private int m_MaxSize;
+
+ [SerializeField]
+ [FormerlySerializedAs("alignment")]
+ private TextAnchor m_Alignment;
+
+ [SerializeField]
+ private bool m_AlignByGeometry;
+
+ [SerializeField]
+ [FormerlySerializedAs("richText")]
+ private bool m_RichText;
+
+ [SerializeField]
+ private HorizontalWrapMode m_HorizontalOverflow;
+
+ [SerializeField]
+ private VerticalWrapMode m_VerticalOverflow;
+
+ [SerializeField]
+ private float m_LineSpacing;
+
+ public static FontData defaultFontData
+ {
+ get
+ {
+ var fontData = new FontData
+ {
+ m_FontSize = 14,
+ m_LineSpacing = 1f,
+ m_FontStyle = FontStyle.Normal,
+ m_BestFit = false,
+ m_MinSize = 10,
+ m_MaxSize = 40,
+ m_Alignment = TextAnchor.UpperLeft,
+ m_HorizontalOverflow = HorizontalWrapMode.Wrap,
+ m_VerticalOverflow = VerticalWrapMode.Truncate,
+ m_RichText = true,
+ m_AlignByGeometry = false
+ };
+ return fontData;
+ }
+ }
+
+ public Font font
+ {
+ get { return m_Font; }
+ set { m_Font = value; }
+ }
+
+ public int fontSize
+ {
+ get { return m_FontSize; }
+ set { m_FontSize = value; }
+ }
+
+ public FontStyle fontStyle
+ {
+ get { return m_FontStyle; }
+ set { m_FontStyle = value; }
+ }
+
+ public bool bestFit
+ {
+ get { return m_BestFit; }
+ set { m_BestFit = value; }
+ }
+
+ public int minSize
+ {
+ get { return m_MinSize; }
+ set { m_MinSize = value; }
+ }
+
+ public int maxSize
+ {
+ get { return m_MaxSize; }
+ set { m_MaxSize = value; }
+ }
+
+ public TextAnchor alignment
+ {
+ get { return m_Alignment; }
+ set { m_Alignment = value; }
+ }
+
+ public bool alignByGeometry
+ {
+ get { return m_AlignByGeometry; }
+ set { m_AlignByGeometry = value; }
+ }
+
+ public bool richText
+ {
+ get { return m_RichText; }
+ set { m_RichText = value; }
+ }
+
+ public HorizontalWrapMode horizontalOverflow
+ {
+ get { return m_HorizontalOverflow; }
+ set { m_HorizontalOverflow = value; }
+ }
+
+ public VerticalWrapMode verticalOverflow
+ {
+ get { return m_VerticalOverflow; }
+ set { m_VerticalOverflow = value; }
+ }
+
+ public float lineSpacing
+ {
+ get { return m_LineSpacing; }
+ set { m_LineSpacing = value; }
+ }
+
+ void ISerializationCallbackReceiver.OnBeforeSerialize()
+ {}
+
+ void ISerializationCallbackReceiver.OnAfterDeserialize()
+ {
+ m_FontSize = Mathf.Clamp(m_FontSize, 0, 300);
+ m_MinSize = Mathf.Clamp(m_MinSize, 0, m_FontSize);
+ m_MaxSize = Mathf.Clamp(m_MaxSize, m_FontSize, 300);
+ }
+ }
+}
diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs.meta b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs.meta
new file mode 100644
index 0000000..f4bb2a1
--- /dev/null
+++ b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontData.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 7c47b221885e53f479140fc48712f249
+timeCreated: 1602119379
+licenseType: Free
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs
new file mode 100644
index 0000000..2228457
--- /dev/null
+++ b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace UnityEngine.UI
+{
+ public static class FontUpdateTracker
+ {
+ static Dictionary<Font, HashSet<Text>> m_Tracked = new Dictionary<Font, HashSet<Text>>();
+
+ public static void TrackText(Text t)
+ {
+ if (t.font == null)
+ return;
+
+ HashSet<Text> exists;
+ m_Tracked.TryGetValue(t.font, out exists);
+ if (exists == null)
+ {
+ // The textureRebuilt event is global for all fonts, so we add our delegate the first time we register *any* Text
+ if (m_Tracked.Count == 0)
+ Font.textureRebuilt += RebuildForFont;
+
+ exists = new HashSet<Text>();
+ m_Tracked.Add(t.font, exists);
+ }
+
+ if (!exists.Contains(t))
+ exists.Add(t);
+ }
+
+ private static void RebuildForFont(Font f)
+ {
+ HashSet<Text> texts;
+ m_Tracked.TryGetValue(f, out texts);
+
+ if (texts == null)
+ return;
+
+ foreach (var text in texts)
+ text.FontTextureChanged();
+ }
+
+ public static void UntrackText(Text t)
+ {
+ if (t.font == null)
+ return;
+
+ HashSet<Text> texts;
+ m_Tracked.TryGetValue(t.font, out texts);
+
+ if (texts == null)
+ return;
+
+ texts.Remove(t);
+
+ if (texts.Count == 0)
+ {
+ m_Tracked.Remove(t.font);
+
+ // There is a global textureRebuilt event for all fonts, so once the last Text reference goes away, remove our delegate
+ if (m_Tracked.Count == 0)
+ Font.textureRebuilt -= RebuildForFont;
+ }
+ }
+ }
+}
diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs.meta b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs.meta
new file mode 100644
index 0000000..8e6ddeb
--- /dev/null
+++ b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Font/FontUpdateTracker.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: fba9c6c6325db2d49bdf2b608066f0e0
+timeCreated: 1602119380
+licenseType: Free
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: