工作中遇到了要输入中文用户名的需要,利用提前制作好的字体图片不能满足需求,又增加了应用安装包的大小,最终想到了一个巧妙的方法,输入框用ngui的UIInput控件,显示的文字用TextMesh组件,这样就解决了用系统字体显示中文的问题。
具体方法是:
1.拉一个UInput控件,做为接收输入的入口。
2.再创建一个3D Text GameObject,也就是一个包含了TextMesh组件的GameObject。
3.写一个脚本用于更新TextMesh的text属性,在其Update函数里更新text值 为步骤一创建的uiinput的text。
4.把UIInput对象的子对象Label的UILabel组件disable了,也就是把Label的UILabel组件前的对勾去掉,目的是不显示uilabel的内容,只用textmesh显示。
5.把TextMesh GameObject放在Label的位置上。
经过以上几步后,就可以用系统字体输入中文了。
具体方法是:
1.拉一个UInput控件,做为接收输入的入口。
2.再创建一个3D Text GameObject,也就是一个包含了TextMesh组件的GameObject。
3.写一个脚本用于更新TextMesh的text属性,在其Update函数里更新text值 为步骤一创建的uiinput的text。
4.把UIInput对象的子对象Label的UILabel组件disable了,也就是把Label的UILabel组件前的对勾去掉,目的是不显示uilabel的内容,只用textmesh显示。
5.把TextMesh GameObject放在Label的位置上。
经过以上几步后,就可以用系统字体输入中文了。