Unity之NGUI中的Input计算字节位数等问题汇总

本文详细介绍了在Unity的NGUI中如何处理UIInput的显示问题,包括如何让每个页签的Input显示不同内容,如何验证输入的文字、数字和字母,以及如何计算字节位数以限制输入长度。通过修改UIInput组件的默认Text值和验证函数,实现了中文字符按两个字节,其他字符按一个字节计算输入长度的功能。
摘要由CSDN通过智能技术生成


一、如何让每个页签的UIInput文字都显示不同。
      1.例如:有2个页签。第一个页签显示“大于”,第二个页签显示“小于”。
      2.直接修改Text的值是不行的,当你修改Text的值的时候,点击一次Input后在点击别处会显示你第一次赋给Input的值。
      3.解决方法是:m_zInput.GetComponent<UIInput>().defaultText = "要默认显示的文字“;
      4.这样每次切换页签时会自动显示默认值


二、如何在输入时验证文字,数字,字母。
      1.NGUI为我们已经设置好了一些验证的条件。我们可以打开UIInput脚本找到Validate函数查看。需要修改就找一个判断进行修改成自己想要的验证的。也可以自己创建一个。
      2.if (ch >= 0x0391 && ch <= 0xFFE5) return ch; 这个显示文字的判断语句。可以将它添加到自己需要的地方。


三、如何计算字节位数。字母、数字、符号按一个字节算。文字按两个字节算。
      1.现在在UIInput脚本最下面(也可以自己找一个位置)添加函数
      public static int CalculatePlaces(string mString)
      {
            int _placesNum = 0; //统计字节位数
            char [] _charArray = mString.ToCharArray();
            for(int i = 0; i < arr.Length; i++)
            {
                  char _eachChar = _charArray[i]; 
                  if(_eachChar >= 0x4e00 && _eachChar <= 0x9fa5 ) //判断中文字符
                        _placesNum +=2;
                  else if (_eachChar >=0x0000 && _eachChar <=0x00ff) //已2个字节判断
                        _placesNum +=1;
            }
            return _placesNum;
      }
      2.然后找到UIInput脚本中Insert函数里面的mValue = sb.ToString(); 这段代码,在它下面进行操作。
      可以加上你之前修改的验证,使之在这样的情况下进行计算字节位数。如:
      if(validation == Validation.Username)
      {
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值