mirror of
				https://github.com/DerTyp7/example-top-down-unity.git
				synced 2025-11-04 06:48:57 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using UnityEngine;
 | 
						|
using System.Collections;
 | 
						|
using System;
 | 
						|
 | 
						|
namespace TMPro
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Example of a Custom Character Input Validator to only allow phone number in the (800) 555-1212 format.
 | 
						|
    /// </summary>
 | 
						|
    [Serializable]
 | 
						|
    //[CreateAssetMenu(fileName = "InputValidator - Phone Numbers.asset", menuName = "TextMeshPro/Input Validators/Phone Numbers")]
 | 
						|
    public class TMP_PhoneNumberValidator : TMP_InputValidator
 | 
						|
    {
 | 
						|
        // Custom text input validation function
 | 
						|
        public override char Validate(ref string text, ref int pos, char ch)
 | 
						|
        {
 | 
						|
            Debug.Log("Trying to validate...");
 | 
						|
            
 | 
						|
            // Return unless the character is a valid digit
 | 
						|
            if (ch < '0' && ch > '9') return (char)0;
 | 
						|
 | 
						|
            int length = text.Length;
 | 
						|
 | 
						|
            // Enforce Phone Number format for every character input.
 | 
						|
            for (int i = 0; i < length + 1; i++)
 | 
						|
            {
 | 
						|
                switch (i)
 | 
						|
                {
 | 
						|
                    case 0:
 | 
						|
                        if (i == length)
 | 
						|
                            text = "(" + ch;
 | 
						|
                        pos = 2;
 | 
						|
                        break;
 | 
						|
                    case 1:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 2;
 | 
						|
                        break;
 | 
						|
                    case 2:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 3;
 | 
						|
                        break;
 | 
						|
                    case 3:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch + ") ";
 | 
						|
                        pos = 6;
 | 
						|
                        break;
 | 
						|
                    case 4:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ") " + ch;
 | 
						|
                        pos = 7;
 | 
						|
                        break;
 | 
						|
                    case 5:
 | 
						|
                        if (i == length)
 | 
						|
                            text += " " + ch;
 | 
						|
                        pos = 7;
 | 
						|
                        break;
 | 
						|
                    case 6:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 7;
 | 
						|
                        break;
 | 
						|
                    case 7:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 8;
 | 
						|
                        break;
 | 
						|
                    case 8:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch + "-";
 | 
						|
                        pos = 10;
 | 
						|
                        break;
 | 
						|
                    case 9:
 | 
						|
                        if (i == length)
 | 
						|
                            text += "-" + ch;
 | 
						|
                        pos = 11;
 | 
						|
                        break;
 | 
						|
                    case 10:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 11;
 | 
						|
                        break;
 | 
						|
                    case 11:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 12;
 | 
						|
                        break;
 | 
						|
                    case 12:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 13;
 | 
						|
                        break;
 | 
						|
                    case 13:
 | 
						|
                        if (i == length)
 | 
						|
                            text += ch;
 | 
						|
                        pos = 14;
 | 
						|
                        break;
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            return ch;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |