Unity--关于中文显示的解决方法
原理:将相关的中文字体导入到Asset目录下,Unity自动将你导入的所有中文字体转换成一张字体贴图,并生成一个Unity字体。然后,就可以在GUI SKin\GUI Style引用生成的Unity字体来显示中文了。步骤:1.打开一个项目,创建一个场景。2.在菜单栏中,创建一个空的GameObject,改名为ChineseFontObject,这个对象作为GUI的容器来使用。3
原理:
将相关的中文字体导入到Asset目录下,Unity自动将你导入的所有中文字体转换成一张字体贴图,并生成一个Unity字体。然后,就可以在GUI SKin\GUI Style引用生成的Unity字体来显示中文了。
步骤:
1.打开一个项目,创建一个场景。
2.在菜单栏中,创建一个空的GameObject,改名为ChineseFontObject,这个对象作为GUI的容器来使用。
3.在Project中创建一个GUI Skin,改名为ChineseFontSkin。
4.在Inspector对上面创建的ChineseFontSkin进行一些小设置,例如将Button中Normal的Text Color改成黄色/将Label中Normal的Text Color改成绿色。
5.通过GameObject菜单创建GUI Text和GUI Texture两个GUI对象,其他大部分GUI通过脚本的形式创建。
6.用脚本创建一个Label和一个Button,核心代码如下:
public GUISkin mySkin;
void OnGUI(){
if(mySkin) GUI.skin = mySkin;
GUI.Label(new Rect(200,400,200,200),"hello,你今天吃了切糕吗?——我没有!");
GUI.Button(new Rect(200,600,100,400),"买一块吧");
}
7.把上面脚本拖放到ChineseFontObject对象上,把ChineseFontSkin托到对象的mySkin里去。
8.运行游戏,只看到英文,看不到中文了,因为我们这个时候还没有导入中文字体。
9.导入中文字体:
一:在C盘的Windows文件夹目录下,寻找Font目录,在里面选择一种中文字体(例如微软雅黑)。
二:把上面选择的中文字体,拷贝到Unity项目的Assets里面的GUI目录下,此时Unity处于不可操作状态。
三:导入的时间比较长,同时Unity自动生成字体贴图和字体定义。
四:导入完毕后,在Assets的GUI目录下多了一个(msyh)的字体。
五:在ChineseFontSkin中,把Font改为刚刚导入的字体(msyh),再运行游戏,就能显示中文了。
10.最后,解析一下导入中文的时候,Unity自动为字体生成一个字体贴图(font texture)以及一个字体材质(font material)。
更多推荐
所有评论(0)