using System; 
 | 
using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using System.Globalization; 
 | 
using UnityEngine; 
 | 
using UnityEngine.UI; 
 | 
    [RequireComponent(typeof(InputField))] 
 | 
    public class InputSpecialWordLimit : MonoBehaviour 
 | 
    { 
 | 
        [SerializeField, Header("是否限制空格")] bool m_SpaceLimit = false; 
 | 
        private void Awake() 
 | 
        { 
 | 
            var _input = GetComponent<InputField>(); 
 | 
            _input.onValidateInput = OnValidateInput; 
 | 
        } 
 | 
  
 | 
        private char OnValidateInput(string text, int charIndex, char addedChar) 
 | 
        { 
 | 
            if (char.GetUnicodeCategory(addedChar) == UnicodeCategory.Surrogate 
 | 
                || char.GetUnicodeCategory(addedChar) == UnicodeCategory.OtherSymbol 
 | 
                || char.GetUnicodeCategory(addedChar) == UnicodeCategory.OtherNumber 
 | 
                || char.GetUnicodeCategory(addedChar) == UnicodeCategory.MathSymbol 
 | 
                || char.GetUnicodeCategory(addedChar) == UnicodeCategory.OtherNotAssigned 
 | 
                || addedChar == '\n') 
 | 
            { 
 | 
                return (char)0; 
 | 
            } 
 | 
            if (m_SpaceLimit) 
 | 
            { 
 | 
                if (addedChar == ' ' 
 | 
                 || addedChar == ' ' 
 | 
                 || char.GetUnicodeCategory(addedChar) == UnicodeCategory.SpaceSeparator) 
 | 
                { 
 | 
                    return (char)0; 
 | 
                } 
 | 
            } 
 | 
            return addedChar; 
 | 
        } 
 | 
    } 
 |