我的游戏项目在上段时间已经上了泰国版本一段时间了,在上线前遇到一个问题,被搞到焦头烂额的,于是记录一下。

问题是这样的,项目本身是用Unity5.5.4版本制作的,游戏里面内置了一个精简版的微软雅黑的字体。然后在打包ios之后,发现所有的泰文都变成了一个方块里面有个问号。
于是觉得很奇怪,拿了项目组另外一个项目来试,这个项目是用Unity5.6.6来制作的,发现能正常显示泰文。
找找差别在哪里,拷贝了改项目用的字体,发现在5.5.4上面仍然显示不出泰文,然后把项目的Unity版本升级为5.6.6,发现泰文能显示了。于是高高兴兴的发版本。
结果在上线前运营验收功能的时候,发现很多界面的字显示超框或者显示不全。由于项目组本身并没有人懂泰文,所以之前一直没有发现这个问题,以为能显示就肯定是对的。到了上线前几天,由泰国本地人跑游戏测试,才发现这个问题,结果就变得非常着急了。因为不解决这个问题根本是不可能上线的,但上线的日期已经定了,广告也投了。
经过对比,发现安卓没有这个问题,旧版系统的iPhone也没有这个问题,只有iOS11以上的手机有显示问题。于是简单百度了一下,就发现了iOS11换了字体的说法,于是大家就以为问题找到了,并且无法解决,就开始傻傻的逐个界面修改。
但我一直对这个事情抱有怀疑,因为从原理上说不通,Unity使用的字体是自己放进去的,字体的原理也是图集,图片都是固定好的,怎么可能会由于系统字体变大,就影响到游戏本身的字体也变大呢?
于是拿出MacBookPro,做了几个demo来测试这个问题,还从网上下载了多个泰文字体作为对比,总算找到了原因。
首先,项目用的字体是一个精简版的微软雅黑,它里面是不包含泰文的。然后在没有泰文的情况下,游戏是自动使用了系统字体来补,所以游戏里面看到的的确是系统的字体,系统字体变大了游戏字体也变大了。于是找一个泰国字体放到游戏里面,发现一切问题都解决了,iOS和Android的显示完全一样了。
这里又回头测试了一下Unity5.5.4的问题,发现在5.5.4里面放入泰文字体,也是能正常的显示泰文的。但如果用系统默认字体,iOS上面的泰文就全部变成问号方框了。也就说明了一个问题,Unity5.5.4是存在字体的bug的,它读取不到iOS上面的泰文系统字体来显示。
最后还发现一个神奇的问题,不是所有泰文字体都能正常显示,其中有三个外观看起来很奇怪的字体,在Mac的编辑器上面显示泰文是正常的,但到了Unity5.5.4打出的iOS包里面,还是显示问号方框。所以试字体要试多几个,而且要真机测试比较稳妥。

Unity发布游戏在iOS设备上出现的字体问题相关推荐

  1. ios连不上微软游戏服务器,iOS 设备上已经支持微软的 Xbox 云游戏服务

    继 4 月中旬开始的仅限邀请的 Beta 测试之后,微软已向iOS 和 PC 上的所有Game Pass Ultimate订阅者推出其 Xbox 云游戏服务.随着今天的公测开始,您可以访问xCloud ...

  2. Unity 之 代码获取IOS设备型号 -- 做分辨率适配

    Unity 之 代码获取IOS设备型号 一,通过机器型号校验 1.1 逻辑解释 1.2 实现代码 二,通过长宽比校验 一,通过机器型号校验 1.1 逻辑解释 在https://www.theiphon ...

  3. “SandJacking”攻击:在未越狱的 iOS 设备上安装恶意应用

    在HITB 2016 会议中,Mi3 Security公司的安全研究员Chilik Tamir发表了一个关于"SandJacking"攻击的演讲,利用一个未打补丁的iOS漏洞在未越 ...

  4. 神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!

    今天我想跟大家分享下,最近连续几天,持续霸榜 GitHub Trending 的一款开源神器:UTM. https://github.com/utmapp/UTM/ 相信在座的各位,多多少少都有过给电 ...

  5. 在iOS设备上安装Windows、Linux等操作系统!

    提到iOS高级玩法,很多人都会想到越狱,但真正的高级玩家,已经在探索如何在iOS上运行其他操作系统了. 2020年,这个想法真的实现了. 首先是在今年3月5日,一位国外的开发团队称,他们在苹果iPho ...

  6. 如何在未越狱iOS设备上安装IPA

    转载自:http://blog.163.com/l1_jun/blog/static/1438638820133505210779/ 如何在未越狱iOS设备上安装IPA 2013-04-05 12:5 ...

  7. 如何在未越狱的iOS 设备上安装 ipa

    如果你是 iOS 开发者, 给客户开发的app, 在发布到appstore 前,需经过客户的测试. 如果客户的iOS设备不是越狱的,你只好通过 ad-hoc 模式,将生产的 ad-hoc profil ...

  8. 不通过App Store,在iOS设备上直接安装应用程序

    今天在iOS设备上安装天翼云存储app,在safari上直接打开http://cloud.189.cn/wap/index.jsp,点击"点击免费安装",如下图: 神奇的事情发生了 ...

  9. 使用 Xcode 在越狱 iOS 设备上进行开发调试

    1 目的 2 iOS 设备的设置 3 生成私有签名 4 设置 Xcode 4.1 告诉 Xcode 不需要签名 4.2 告诉 Xcode 不用做签发动作 4.3 指示 Xcode 使用私有签名签发 A ...

  10. 从Windows 7 Media Center转换实况电视录制以在iOS设备上观看

    If you use Windows 7 Media Center to record Live TV, you might want to bring shows with you on your ...

最新文章

  1. Python 高级特性 (1)- 闭包
  2. python与人工智能编程-五大人工智能流行编程语言对比,只要学会一种绝对不亏!...
  3. java的准动态(反射)
  4. 利用AutoHotkey实现Vim和Excel的数据传递
  5. 机器人学 —— 机器人视觉(极几何)
  6. C和指针之字符串编程练习8实现char *my_strnchr(char const *str, int ch, int which)
  7. Linux安装JDK(rpm)
  8. 程序员如何在百忙中更有效地利用时间,如何不走岔路,不白忙(忙得要有效率,要有收获)...
  9. 16_使用开源项目下载文件
  10. vs2008中使用gdi+的设置
  11. linux中安装rpm命令,linux下,如何安装rpm命令?
  12. clearcase 与 git的区别
  13. v8引擎编译全记录2020-10-17(保姆级教程)
  14. android 删除图片后通知系统图库删除图片
  15. MFC中CDC *PDC hDC 等等及Wnd的区别
  16. mysql数据库外连_数据库外连接及MySQL实现
  17. 【Docker】Docker镜像是什么?浅谈对Docker镜像的理解
  18. 怀揣美好前行 善良的人终究都会幸福
  19. windows蓝屏错误代码查询
  20. CAD开发:DWG合并,dwg转换为dxf

热门文章

  1. Android 应用开发---TextView(文本框)详解
  2. Sopcast软件中凤凰卫视频道列表代码
  3. Java并发编程(十七)Java并发包中原子操作类原理
  4. Vue简易时间计时器
  5. 使用H-lua框架制作魔兽争霸地图(7-物编-物品合成篇)
  6. MapABC Flex4 Demo
  7. python 省份排序_MySQL
  8. 【服务器】揭秘淘宝286亿海量图片存储与处理架构
  9. 计算机ae软件的入门教学视频教程,新手如何入门剪辑?3分钟教会你快速上手(附赠教程)...
  10. 【c语言】malloc函数详解