using UnityEngine; using System.Collections; using UnityEngine.TextCore.LowLevel; namespace TMPro.Examples { public class Benchmark03 : MonoBehaviour { public enum BenchmarkType { TMP_SDF_MOBILE = 0, TMP_SDF__MOBILE_SSD = 1, TMP_SDF = 2, TMP_BITMAP_MOBILE = 3, TEXTMESH_BITMAP = 4 } public int NumberOfSamples = 100; public BenchmarkType Benchmark; public Font SourceFontFile; void Awake() { } void Start() { TMP_FontAsset fontAsset = null; // Create Dynamic Font Asset for the given font file. switch (Benchmark) { case BenchmarkType.TMP_SDF_MOBILE: fontAsset = TMP_FontAsset.CreateFontAsset(SourceFontFile, 90, 9, GlyphRenderMode.SDFAA, 256, 256, AtlasPopulationMode.Dynamic); break; case BenchmarkType.TMP_SDF__MOBILE_SSD: fontAsset = TMP_FontAsset.CreateFontAsset(SourceFontFile, 90, 9, GlyphRenderMode.SDFAA, 256, 256, AtlasPopulationMode.Dynamic); fontAsset.material.shader = Shader.Find("TextMeshPro/Mobile/Distance Field SSD"); break; case BenchmarkType.TMP_SDF: fontAsset = TMP_FontAsset.CreateFontAsset(SourceFontFile, 90, 9, GlyphRenderMode.SDFAA, 256, 256, AtlasPopulationMode.Dynamic); fontAsset.material.shader = Shader.Find("TextMeshPro/Distance Field"); break; case BenchmarkType.TMP_BITMAP_MOBILE: fontAsset = TMP_FontAsset.CreateFontAsset(SourceFontFile, 90, 9, GlyphRenderMode.SMOOTH, 256, 256, AtlasPopulationMode.Dynamic); break; } for (int i = 0; i < NumberOfSamples; i++) { switch (Benchmark) { case BenchmarkType.TMP_SDF_MOBILE: case BenchmarkType.TMP_SDF__MOBILE_SSD: case BenchmarkType.TMP_SDF: case BenchmarkType.TMP_BITMAP_MOBILE: { GameObject go = new GameObject(); go.transform.position = new Vector3(0, 1.2f, 0); TextMeshPro textComponent = go.AddComponent<TextMeshPro>(); textComponent.font = fontAsset; textComponent.fontSize = 128; textComponent.text = "@"; textComponent.alignment = TextAlignmentOptions.Center; textComponent.color = new Color32(255, 255, 0, 255); if (Benchmark == BenchmarkType.TMP_BITMAP_MOBILE) textComponent.fontSize = 132; } break; case BenchmarkType.TEXTMESH_BITMAP: { GameObject go = new GameObject(); go.transform.position = new Vector3(0, 1.2f, 0); TextMesh textMesh = go.AddComponent<TextMesh>(); textMesh.GetComponent<Renderer>().sharedMaterial = SourceFontFile.material; textMesh.font = SourceFontFile; textMesh.anchor = TextAnchor.MiddleCenter; textMesh.fontSize = 130; textMesh.color = new Color32(255, 255, 0, 255); textMesh.text = "@"; } break; } } } } }