Unity3d中文在部分机型显示不全解决方案
来源:互联网 发布:roboguide软件下载 编辑:程序博客网 时间:2024/05/01 10:05
游戏测试发现部分机型的UI上的中文显示不全,全都是碎的。后来发现原来unity3d中默认字体Arial在Android机型中会指向DroidSansFallback字体,而某些机型自己定制了字体。
参考Blog:
Unity在NGUI中默认动态字体Arial字体显示不完整解决方案
unity font研究小结
Android系统中默认字体DroidSans和DroidSansFallback字体分别为西文和包含东亚字体,当在DroidSans中找不到的字体会在DroidSansFallback中寻找。但是Android中寻找字体是根据文件名寻找,就是说随便什么字体我改为DroidSansFallback.ttf放入System/font目录下就可以成文系统默认字体,手机的字体随之改变,这就是自定义Android手机字体。
但是Unity3d在Android中寻找字体是根据字体名称,而非文件名称。也就是说MYingHeiGB18030C-Bold字体我将其文件名改为DroidSansFallback放入手机中,Android系统默认字体改变,而使用Arial默认字体的NGUI Label在运行时会因为找不到DroidSansFallback字体而显示不全。
所以解决方法就是导入一个字体,这里可以参照Unity手册http://docs.unity3d.com/Manual/class-Font.html
Unity圣典翻译http://game.ceeger.com/Components/class-Font.html,将字体设为动态,你可以在Incl. Font Data勾选将打包进安装包,不勾选字体将不打进去,下面的FontsName可以填入多个字体名,用逗号隔开,当第一个字体找不到时会依次查找下面备用的,直到找到对应文件名的字体或找完都找不到对应的。
PS:此处强调一点,我是看的这个教程Unity在NGUI中默认动态字体Arial字体显示不完整解决方案 修改的,我以为按照教程将其中的MYingHeiGB18030C-Bold字体换为其他的字体也可以,结果打包了好几次都不行,我还以为这个方法不行,最后才发现我测得Oppo的手机的默认字体就是MYingHeiGB18030C-Bold,结果在FontsName中我没写它。。。。
但是这种方法也有不好的地方,FontsName中要写很多字体名称也不能保证所有机型字体正常,因为总有人喜欢将手机字体自定义为默写小众的美化字体,所以如果追求完美想让所有的机型都显示正常,最好找一个不是很大但字符比较全的中文字体打进安装包中。同时我想在Android中获得系统默认字体名称在启动时传入unity,动态改变Lable字体不知道可不可行,心里觉得估计比较麻烦,还是希望Untiy以后会改进吧,或者可以让开发者对字体选择有更大控制权。
- Unity3d中文在部分机型显示不全解决方案
- RecyclerView 在ScrollView部分机型无法下拉显示不全(兼容问题)
- 【解决方案Webview】H5弹出对话框,部分机型显示错位问题!
- BIRT 在IE10浏览器显示不全解决方案
- CCClippingNode 在部分移动平台机型上面失效的解决方案
- SurfaceView控件在部分机型上不能显示问题
- [Unity3D] monodevelop 在 MacOS 中文显示解决方法
- setImageBitmap 图片太大部分机型不显示
- 关于AppCompatSpinner在某些机型使用popupBackground显示异常的解决方案
- Unity3D 去掉部分Android机型的底栏
- 显示器分辨率不同,部分winform控件在其他机器上显示不全
- Android 模拟器显示不全的解决方案
- linux终端显示内容不全的解决方案
- 视频名字显示不全的解决方案
- ScrollView嵌套ListView显示不全解决方案
- ScrollView嵌套ListView显示不全解决方案
- iOS TableViewCell 底下线显示不全解决方案
- maven中项目目录显示不全解决方案
- Android自定义控件初体验
- IOS 判断定位服务是否开启代码
- IP/TCP/UPD 头结构详解
- 算法:关于生成抽样随机数的这些算法
- hibernate01 和JDBC的优缺点、配置文件、加载流程、自动生成、对象的状态
- Unity3d中文在部分机型显示不全解决方案
- HTML 转义字符
- python注意事项
- 取余运算的Lyapunov指数
- Linux建立svn版本库
- POJ 3414 Pots(水壶)
- OpenCV参考手册之Mat类详解
- jquery序列表单和对象
- 两种方法解决tomcat的 Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]