转载网址:http://zhaolongchn.blog.163.com/blog/static/1906585042012715104425988/
unity中文显示:
1. 将ttf字体文件拖到项目的Assets目录下;
2. 激活Unity会自动导入字体,可以调整导入选项Inspector窗口中True Type Font Importer项下Character选择Dynamic则只会导入用到的字符,如果选择Unicode则会导入所有字符。当然,如果导入全部字符可能会生成超大的font Texture,如果想在ios或者android上使用,可能需要删减;
3.在Project窗口中新建一个GUI Skin;
4.调整GUI Skin的属性中的Font;
5.在代码中定义GUISkin对象,并把它赋值给默认skin之后则之后调用 GUI.Label, GUI.Button等都会使用新指定的字体
public GUISkin mySkin;
void OnGUI(){
if(mySkin) GUI.skin = mySkin;
}
6.如果使用GUIText,则可以直接指定新导入的字体;
总结:
1.字体导入时dynamic字符模式只支持在mac和pc的standalone,对ios不支持! 所以ios字体只能选择Unicode字符模式。
2.ttf字体文件在导入到unity中如果显示模糊,则在ios上会显示为不出,可以调整导入时的font size设置,如果在scene窗口中显示为非常清晰,则ios上没问题.例如我在使用windows的楷体(simkai)时,默认导入字体大小为16,则显示不出,调整到22再重新导入则可以正常显示.目前原因不明,有待研究。
3. 如果脚本代码中有中文,一定要把代码文件保存为utf-16编码格式, unitron(默认代码编辑器)可以选中菜单text ->text encoding ->unicode (utf-16),我曾经在此问题上纠结了好久。