原創教程,如需轉載,請注明作者和出處,謝謝
使用環境:需要Unity 4.x的版本,NGUI本教程使用的是2.5.0版本
1、新建一個新的項目
2、導入NGUI2.5.0版本的插件包
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控制面板中的字體文件夾
5、測試使用華文行楷的字體,直接拖入到unity3d的project文件夾中就可以了
拖入后,如下顯示
6、新建一個材質ttfMaterial
7、材質的shader選擇Transparent Colored(DynamicFont)
8、在unity的Hierarchy中新建一個空物體(GameObject),改名為ttfFont
點擊物體的inspector面板中的Add Component,選擇NGUI->UI->Font
9、FontType選擇Dynamic,顯示如下
10、將先前生成的STXINGKA字體和ttfMaterial分別投入到Font和Material下面
其中,Size代表生成的字體大小,Style可以選擇斜體、粗體等
11、將Hierarchy中的ttfFont物體拖入到Project中,變為預置物體(Prefab),ttf動態字體就完成了
12、清空Hierarchy,加入NGUI的層次結構
13、加入一個背景,選擇了插件自帶例子中的Fantasy Atlas作為素材(這一步可以省略,只是為了讓字體看的更加突出一點)
14、加入一個label
15、將剛才拖為預置物體的ttfFont直接拖入到UILabel的材質上面,就可以了
16、字體顯示效果如下,如果想讓字體顯示更大或者更加清晰,可以在第10步制作字體的時候將字體的size選擇更大的字號
目前存在的問題:字體無法換行,如果想顯示多行字體,必須使用多個label,初步猜想是在解析內容的時候,沒有加入換行符的解析,筆者有空將研究代碼,看看有沒有可能解決