You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			129 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C#
		
	
		
		
			
		
	
	
			129 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C#
		
	
| 
								 
											1 year ago
										 
									 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								using System.Collections;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace TMPro.Examples
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    public class Benchmark01 : MonoBehaviour
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public int BenchmarkType = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public TMP_FontAsset TMProFont;
							 | 
						||
| 
								 | 
							
								        public Font TextMeshFont;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        private TextMeshPro m_textMeshPro;
							 | 
						||
| 
								 | 
							
								        private TextContainer m_textContainer;
							 | 
						||
| 
								 | 
							
								        private TextMesh m_textMesh;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        private const string label01 = "The <#0050FF>count is: </color>{0}";
							 | 
						||
| 
								 | 
							
								        private const string label02 = "The <color=#0050FF>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<TextMeshPro>();
							 | 
						||
| 
								 | 
							
								                m_textMeshPro.autoSizeTextContainer = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                //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 = false;    
							 | 
						||
| 
								 | 
							
								                //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 - Drop Shadow"); // Make sure the LiberationSans SDF exists before calling this...  
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            else if (BenchmarkType == 1) // TextMesh
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                m_textMesh = gameObject.AddComponent<TextMesh>();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (TextMeshFont != null)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    m_textMesh.font = TextMeshFont;
							 | 
						||
| 
								 | 
							
								                    m_textMesh.GetComponent<Renderer>().sharedMaterial = m_textMesh.font.material;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                else
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    m_textMesh.font = Resources.Load("Fonts/ARIAL", typeof(Font)) as Font;
							 | 
						||
| 
								 | 
							
								                    m_textMesh.GetComponent<Renderer>().sharedMaterial = m_textMesh.font.material;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                m_textMesh.fontSize = 48;
							 | 
						||
| 
								 | 
							
								                m_textMesh.anchor = TextAnchor.MiddleCenter;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                //m_textMesh.color = new Color32(255, 255, 0, 255);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            for (int i = 0; i <= 1000000; i++)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                if (BenchmarkType == 0)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    m_textMeshPro.SetText(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;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        */
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |