Unity之NGUI中的Input计算字节位数等问题汇总
2016-10-25 21:29
274 查看
一、如何让每个页签的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)
{
int _length = CalculatePlaces(mValue);s
if(_length > 20) //20:这个数根据自己需求设定。
{
mValue = mValue.Substring(0,mValue.Length - 1);
mSelectionStart = mValue.Length;
mSelectionENd = mSelectionStart;
}
}
3.这样就可以实现按字节位数输入。判断后:文字输入数为10个,字符、数字、字母为20个。
四、更多内容。
1.其他NGUI组件的常见问题可以关注我的另一篇文章:
Unity之NGUI常见问题汇总
http://blog.csdn.net/qq_36238788/article/details/52806843
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)
{
int _length = CalculatePlaces(mValue);s
if(_length > 20) //20:这个数根据自己需求设定。
{
mValue = mValue.Substring(0,mValue.Length - 1);
mSelectionStart = mValue.Length;
mSelectionENd = mSelectionStart;
}
}
3.这样就可以实现按字节位数输入。判断后:文字输入数为10个,字符、数字、字母为20个。
四、更多内容。
1.其他NGUI组件的常见问题可以关注我的另一篇文章:
Unity之NGUI常见问题汇总
http://blog.csdn.net/qq_36238788/article/details/52806843
相关文章推荐
- Unity之NGUI常见问题汇总
- NGUI的Input输入框限制中文字节数问题
- [Unity3d]NGUI的INPUT输入框限制中文字节数问题
- POJ-1423 计算出n的阶乘的位数大数问题[Stirling公式]
- linux的nand中计算ECC的时候buf地址不4字节对齐的问题
- Unity 粒子特效被NGUI遮挡的问题
- unity 使用Ngui 屏幕适配问题
- 关于Unity5.0.1f1中使用NGUI3.8.2出现错误Input Axis Mouse ScrolWheel is not setup
- java中float/double浮点数的计算失去精度问题(即小数位数增加的问题)
- 【转】unity基础问题汇总
- Unity中使用NGUI和FingerGestures插件点击UI穿透的问题
- 云计算 常见问题案例汇总情况
- Unity NGUI UILabel文字变色 及相关问题
- java中float/double浮点数的计算失去精度问题(即小数位数增加的问题)
- JS获取input标签的text值、JS获取下拉框内容、input控制只能输入数字等问题汇总
- Unity导入NGUI遇到的问题
- 软考计算机网络原理之IP计算问题汇总
- Unity 3d 使用NGUI做UI时遇到的奇怪问题
- 【小松教你手游开发】【unity实用技能】控制renderQueue解决NGUI与Unity3D物体渲染顺序问题