您的位置:首页 > 移动开发 > Unity3D

Unity--关于中文显示的解决方法

2013-03-20 22:32 274 查看
原理:

将相关的中文字体导入到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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: