Unity UGUI基础之InputField

InputField(输入域):为文本输入控件,等同于NGUI的Input。


一、InputField组件:

Unity UGUI基础之InputField_手机端


Text Component(文本组件):此输入域的文本显示组件,需带有Text组件。


Text(文本):此输入域的初始值。


Character Limit(字符限制):限定此输入域最大输入的字符数,0为不限制。


Content Type(内容类型):限定此输入域的内容类型,包括数字、密码等。


Line Type(换行方式):当输入的内容超过输入域边界时;


               single Line(单一行):超过边界也不换行,继续延伸此行,输入域中的内容只有一行;


               multi Line Submit(多行):超过边界则换行,输入域中内容有多行;


               multi Line Newline(多行):超过边界则新建换行,输入域中内容有多行。


Placeholder(位置标示):此输入域的输入位控制符,需带有Text组件。


注意,Placeholder对应的Text也为此输入框的提示语显示:(Enter text...为提示语,当输入框内容为空时,提示语可见,内容不为空时,提示语不可见)

Unity UGUI基础之InputField_输入框_02


Caret blink rate(光标闪烁速度):输入光标的闪烁速度。


Hide mobile input(手机端隐藏输入);


On Value Changed:值改变时触发消息。


End Edit:结束编辑时触发消息。



△最近发现了UGUI  InputField的一个BUG,我自己测试了很多遍,应该是BUG吧:



BUG描述:InputField的输入光标在本身已经active为false之后依然还显示在场景中;



触发这个BUG的方式:当一个InputField处于焦点状态(也就是光标在输入域内闪烁),当光标显示的时候(光标总是一闪一逝),立即隐藏该InputField自身的gameobject或者其任意父级的gameobject(代码中SetActive(false)或者在编辑器中直接勾掉整个gameobject,注意不是InputField的enabled),如果此时光标正好闪烁出现的话,那么光标就会一直显示在原地,而我们的整个InputField本身已经处于未激活状态了。



如下:



焦点这个InputField之后:

Unity UGUI基础之InputField_输入框_03


看到光标闪烁出来立刻隐藏他;

Unity UGUI基础之InputField_手机端_04


我们可以看到光标被孤立了(当然,光标一直比输入域高出一截这个问题也是相当的坑爹)。



△如何避免光标比输入域高的现象发生?



这个现象可以算是BUG也可以算是一种设定,InputField光标的大小与其中文本的大小一致,但他的位置却是始终上端对齐至InputField的目标Text Component上。



如下,如果你的InputField中输入的文本(123456)是上下居中对齐,那么光标的位置依然会保持在红箭头所指的位置(上端对齐),当然如果输入跳行的话光标还是会跳到下一行。

Unity UGUI基础之InputField_左对齐_05



要避免出现这个问题的话,最好的方式就是所有输入域都统一保持左对齐和上对齐,如果非要居中对齐的话,那么整个Text的边框大小就尽量保持与文字大小一致,毕竟,居中对齐的输入域应该是不存在换行的吧,当然如果你非要这么做,那还是老老实实的靠边对齐吧。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空