136 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
| using UnityEngine;
 | |
| using System.Collections;
 | |
| using UnityEngine.UI;
 | |
| 
 | |
| 
 | |
| namespace TMPro.Examples
 | |
| {
 | |
|     
 | |
|     public class Benchmark01_UGUI : MonoBehaviour
 | |
|     {
 | |
| 
 | |
|         public int BenchmarkType = 0;
 | |
| 
 | |
|         public Canvas canvas;
 | |
|         public TMP_FontAsset TMProFont;
 | |
|         public Font TextMeshFont;
 | |
| 
 | |
|         private TextMeshProUGUI m_textMeshPro;
 | |
|         //private TextContainer m_textContainer;
 | |
|         private Text m_textMesh;
 | |
| 
 | |
|         private const string label01 = "The <#0050FF>count is: </color>";
 | |
|         private const string label02 = "The <color=#0050FF>count is: </color>";
 | |
| 
 | |
|         //private const string label01 = "TextMesh <#0050FF>Pro!</color>  The count is: {0}";
 | |
|         //private const string label02 = "Text Mesh<color=#0050FF>        The count is: </color>";
 | |
| 
 | |
|         //private string m_string;
 | |
|         //private int m_frame;
 | |
| 
 | |
|         private Material m_material01;
 | |
|         private Material m_material02;
 | |
| 
 | |
| 
 | |
| 
 | |
|         IEnumerator Start()
 | |
|         {
 | |
| 
 | |
| 
 | |
| 
 | |
|             if (BenchmarkType == 0) // TextMesh Pro Component
 | |
|             {
 | |
|                 m_textMeshPro = gameObject.AddComponent<TextMeshProUGUI>();
 | |
|                 //m_textContainer = GetComponent<TextContainer>();
 | |
| 
 | |
| 
 | |
|                 //m_textMeshPro.anchorDampening = true;
 | |
| 
 | |
|                 if (TMProFont != null)
 | |
|                     m_textMeshPro.font = TMProFont;
 | |
| 
 | |
|                 //m_textMeshPro.font = Resources.Load("Fonts & Materials/Anton SDF", typeof(TextMeshProFont)) as TextMeshProFont; // Make sure the Anton SDF exists before calling this...           
 | |
|                 //m_textMeshPro.fontSharedMaterial = Resources.Load("Fonts & Materials/Anton SDF", typeof(Material)) as Material; // Same as above make sure this material exists.
 | |
| 
 | |
|                 m_textMeshPro.fontSize = 48;
 | |
|                 m_textMeshPro.alignment = TextAlignmentOptions.Center;
 | |
|                 //m_textMeshPro.anchor = AnchorPositions.Center;
 | |
|                 m_textMeshPro.extraPadding = true;
 | |
|                 //m_textMeshPro.outlineWidth = 0.25f;
 | |
|                 //m_textMeshPro.fontSharedMaterial.SetFloat("_OutlineWidth", 0.2f);
 | |
|                 //m_textMeshPro.fontSharedMaterial.EnableKeyword("UNDERLAY_ON");
 | |
|                 //m_textMeshPro.lineJustification = LineJustificationTypes.Center;
 | |
|                 //m_textMeshPro.enableWordWrapping = true;    
 | |
|                 //m_textMeshPro.lineLength = 60;          
 | |
|                 //m_textMeshPro.characterSpacing = 0.2f;
 | |
|                 //m_textMeshPro.fontColor = new Color32(255, 255, 255, 255);
 | |
| 
 | |
|                 m_material01 = m_textMeshPro.font.material;
 | |
|                 m_material02 = Resources.Load<Material>("Fonts & Materials/LiberationSans SDF - BEVEL"); // Make sure the LiberationSans SDF exists before calling this...  
 | |
| 
 | |
| 
 | |
|             }
 | |
|             else if (BenchmarkType == 1) // TextMesh
 | |
|             {
 | |
|                 m_textMesh = gameObject.AddComponent<Text>();
 | |
| 
 | |
|                 if (TextMeshFont != null)
 | |
|                 {
 | |
|                     m_textMesh.font = TextMeshFont;
 | |
|                     //m_textMesh.renderer.sharedMaterial = m_textMesh.font.material;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     //m_textMesh.font = Resources.Load("Fonts/ARIAL", typeof(Font)) as Font;
 | |
|                     //m_textMesh.renderer.sharedMaterial = m_textMesh.font.material;
 | |
|                 }
 | |
| 
 | |
|                 m_textMesh.fontSize = 48;
 | |
|                 m_textMesh.alignment = TextAnchor.MiddleCenter;
 | |
| 
 | |
|                 //m_textMesh.color = new Color32(255, 255, 0, 255);    
 | |
|             }
 | |
| 
 | |
| 
 | |
| 
 | |
|             for (int i = 0; i <= 1000000; i++)
 | |
|             {
 | |
|                 if (BenchmarkType == 0)
 | |
|                 {
 | |
|                     m_textMeshPro.text = label01 + (i % 1000);
 | |
|                     if (i % 1000 == 999)
 | |
|                         m_textMeshPro.fontSharedMaterial = m_textMeshPro.fontSharedMaterial == m_material01 ? m_textMeshPro.fontSharedMaterial = m_material02 : m_textMeshPro.fontSharedMaterial = m_material01;
 | |
| 
 | |
| 
 | |
| 
 | |
|                 }
 | |
|                 else if (BenchmarkType == 1)
 | |
|                     m_textMesh.text = label02 + (i % 1000).ToString();
 | |
| 
 | |
|                 yield return null;
 | |
|             }
 | |
| 
 | |
| 
 | |
|             yield return null;
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /*
 | |
|         void Update()
 | |
|         {
 | |
|             if (BenchmarkType == 0)
 | |
|             {
 | |
|                 m_textMeshPro.text = (m_frame % 1000).ToString();            
 | |
|             }
 | |
|             else if (BenchmarkType == 1)
 | |
|             {
 | |
|                 m_textMesh.text = (m_frame % 1000).ToString();
 | |
|             }
 | |
| 
 | |
|             m_frame += 1;
 | |
|         }
 | |
|         */
 | |
|     }
 | |
| 
 | |
| }
 |