【开发日志#3】像素字体/分辨率
10/23115 浏览综合
中文像素字体
- 之前用过的像素字体,这次偶然发现评论区有人提到版权隐患。。决定换一个。找了一圈最后在某开源大社找到一个看起来很棒的,作者还在积极更新。
- 对比游戏分辨率570x320,最终选了12px版;10px的用在传呼机上感觉也很合适,但是貌似适配的汉字还不太完整,一级汉字只能覆盖90%多点;考虑到游戏里字比较多,就算了
- 确定字体后,就是把字体导入 Unity,总共大概分3步;
- 首先得做一个自定义字符表;字体官方提供了一份字表但是里面汉字太多了好几万。。我就在网上找了份几千常用汉字表替换了一下
- 然后把字体文件导入unity,import setting里把尺寸设为12也就是原始大小,渲染模式改为Hinted Raster,避免抗锯齿模糊
- 最后在TextMeshPro用第一步做的字符表生成Font Asset (花了15分钟。。);(1024x1024好像完全放不下。。padding我看有人提到最好不要低于point size的10~30%就没选太小):
生成Font Asset配置
分辨率
- 最后,像素字体如果任意倍数缩放很容易出现不均匀的失真,我参考Unity官方的Pixel Perfect repo做了个CustomCanvasScaler;
- 游戏会基于570x320,按照小于玩家窗口分辨率的最高整数倍来显示,比如玩家resize窗口到1920x1080,游戏就会调整到1710x960(3倍),剩余空间用黑边填充:
1920x1080下,实际显示1710x960,剩余黑边填充
- 这是同分辨率下,按3.3倍左右放大填满整个窗口的效果,字体和像素dithering的变形还是挺明显的:
1920x1080,放大约3.3倍填满画面


