原创教程,如需转载,请注明作者和出处,谢谢

使用环境:需要Unity 4.x的版本,NGUI本教程使用的是2.5.0版本

1、新建一个新的项目

image

2、导入NGUI2.5.0版本的插件包

image

3、导入修改后的NGUI_277c_DynamicFonts_modify插件包,修改后的插件包见http://115.com/lb/5lb3of5

备注:原先的动态字体插件包对NGUI2.3.6以及之后的版本有兼容问题,笔者已经做了修改适应NGUI2.5.0,经测试目前没有明显bug,动态插件包的原作者地址http://www.tasharen.com/forum/index.php?topic=2707.25

4、打开windows控制面板中的字体文件夹

image

5、测试使用华文行楷的字体,直接拖入到unity3d的project文件夹中就可以了

拖入后,如下显示

image

6、新建一个材质ttfMaterial

image

7、材质的shader选择Transparent Colored(DynamicFont)

image

8、在unity的Hierarchy中新建一个空物体(GameObject),改名为ttfFont

点击物体的inspector面板中的Add Component,选择NGUI->UI->Font

imageimage

9、FontType选择Dynamic,显示如下

image

10、将先前生成的STXINGKA字体和ttfMaterial分别投入到Font和Material下面

其中,Size代表生成的字体大小,Style可以选择斜体、粗体等

image

11、将Hierarchy中的ttfFont物体拖入到Project中,变为预置物体(Prefab),ttf动态字体就完成了

image

 

12、清空Hierarchy,加入NGUI的层次结构

image

13、加入一个背景,选择了插件自带例子中的Fantasy Atlas作为素材(这一步可以省略,只是为了让字体看的更加突出一点)

image

14、加入一个label

image

15、将刚才拖为预置物体的ttfFont直接拖入到UILabel的材质上面,就可以了

image

16、字体显示效果如下,如果想让字体显示更大或者更加清晰,可以在第10步制作字体的时候将字体的size选择更大的字号

image

 

目前存在的问题:字体无法换行,如果想显示多行字体,必须使用多个label,初步猜想是在解析内容的时候,没有加入换行符的解析,笔者有空将研究代码,看看有没有可能解决