http://wiki.etc.cmu.edu/unity3d/index.php/Unity_font_issue_on_iOS/Android#Edit_the_Font\




在iOS / Android的统一字体问题

内容

[隐藏]
  • 1字体为iOS / Android的
  • 2字体的亚洲字符
    • 2.1发行
    • 2.2简单的解决方案
    • 2.3完整的解决方案
      • 2.3.1安装Cygwin和fontforge的
      • 2.3.2编辑字体
      • 2.3.3UnicodeFontHelper

字体为iOS / Android的

使用Visual Studio转换

的iOS / Android设备不支持动态字体,这意味着您无法调整字体的大小,样式在TextMesh组件或GUIText组件。相反,你需要在字体资产导入设置中设置这些值。如果你需要的变化具有不同的尺寸和颜色,你需要做的字体资产的另一个副本,并设置这些值。一个例子示于右侧。下面是你需要在统一的iOS / Android的使用字体的步骤:

  1. 进口字体资产,在这里你将决定哪些字体的风格需要进口(正常,粗体,斜体等)。
  2. 跳到[字体资产导入设置,更改字符Unicode的ASCII码,根据你所使用的编码。对于Unicode的字体,更多的细节将在下届会议上给出。设置字体大小字体颜色
  3. 字体拖到TextMeshGUIText组件。对于TextMesh,不要忘记拖动字体物质(你可以找到它的时候崩溃字体资产)为MeshRender
  4. TextMeshGUIText,设置字体大小0字体样式正常。字体大小和样式将字体资产来确定。
  5. 构建到您的设备,并享受:)

字体为亚洲字符

Cygwin的软件包

问题

在Unity3D的使用亚洲字符为iOS / Android的需要额外的努力。统一放在一个字体的每一个支持的字符为位图进行渲染,而iOS只有可达2048x2048支持(1024×1024的旧设备)的纹理。它工作正常,为西方语言,但对于亚洲语言,你可以想像有多少字符有多么小的每个字符将是适合在2048 * 2048的位图。从测试团队Locomobio,使用日文字体与级别设置2个普通的字符,字体的最大尺寸可以是44的iPhone 4S。并为iPhone 4,iPhone 3GS或Android设备我们拥有的最大大小是小于20。即使我们确定有大小44,字体纹理大小可以作为巨大的8.0MB,这是不能接受的iOS应用。你要额外的工作来减少设置字符的大小。

简单的解决方案

如果您使用的是日本和大部分的文字是假名或通用汉字,你是幸运的去与简单的解决方案。
如果您使用的是中国或日本先进的汉字,请直接跳到下一个部分的完整的解决方案。
对于简单的解决方案,有一个免费的选择的日文字符可以用统一资源商店的字体。
来吧下载该字体,并按照上一节的指示,你应该罚款。

完整的解决方案

如果你达到了这一部分,你需要切出你不需要在你自己的角色,
我们使用一个名为工具fontforge的。下面是招一个完整的步骤。

安装Cygwin和fontforge的

这部分是Windows用户而已,因为fontforge的需要在类Linux环境中运行。
对于其他用户,你可以找到的fontforge的网站说明安装您的版本。
有关完整说明,请参阅此页,我在这里复制它的步骤为了方便。

  1. 下载cygwin的安装。运行setup.exe,并首先选择你下载镜像。
  2. 然后选择要安装在Cygwin环境下有关的包,你将需要默认的东西,再加上X窗口系统,binutils的,的libpng,libjpeg的,和libxml2的。
  3. 下载fontforge的并解压文件(S)到里面的Cygwin环境中一种目录。例如:。C:\ cygwin的\首页\ fontforge的\
  4. 运行Cygwin的。
  5. 运行由fontforge的需要X Window系统。只要输入在Cygwin Bash的方式:$ startx
  6. 从解压后的文件夹中运行fontforge的:$运行的/ home / fontforge的/ fontforge.bat

编辑字体

首先得到一个字体。我们用M +日文字体。然后打开fontforge的字体,点击你不需要的字符右键,选择清晰。当你完成后,进入文件- >生成字体,然后选择TrueType字体来生成一个新的字体。现在,您可以导入新的字体到Unity。(请记住,在设置字符Unicode的进口设置)。
这是一个巨大的工作量所拿到手搭这些字符。在文件- >执行脚本,我们最多可以输入脚本来减轻我们的生活。
一个示例脚本如下,我们选择除“A”(0u61)每一个字符,并清除它们:

   选择无()   SelectMore(0u61)   SelectInvert()   清除()

在下一节中,我们提供了一个简单的程序来读取一个文本文件,并生成选择未包含在该文件中,并清除它们的所有字符的脚本。所以,你只需要把你需要在游戏中以文本文件中使用,并执行脚本出来把该程序的所有字符。执行外部脚本,转到文件- >执行脚本- >通话

UnicodeFontHelper

这个计划是为团队Locomobio一个快速的解决方案。它的目的不是要成为一个完整的工具。请仔细阅读该代码,并确保您了解是怎么回事,和自定义版本。基本上你只需要去\ UnicodeFontHelper \ UnicodeFontHelper \ BIN \调试,把你的人物在Characters.txt,运行程序,它会输出FontCut.pe作为fontforge的脚本。

Unicode的字体助手项目


更多相关文章

  1. Android(安卓)AlarmManager的取消
  2. WebView 键盘遮挡输入框解决方案
  3. Android(安卓)Fragment 使用
  4. Android设置透明、半透明等效果
  5. 设置屏幕显示模式ScreenOrientation.
  6. Android中如何获得一些系统设置和环境变量?
  7. Android设置View的margin
  8. 关于单选框RadioGroup和RadioButton
  9. Android之android:theme设置在Application 和 Activity的区别

随机推荐

  1. 微软之鉴:Google不会将Android与Chrome OS
  2. Android系统移植与调试之------->如何修
  3. android中的键盘处理
  4. Google I/O 2014 New
  5. Android(安卓)应用程序之间数据共享—Con
  6. Android性能测试之卡顿ANR测试
  7. Android的Intent机制
  8. Android中单击空白区域隐藏键盘
  9. ffmpeg neon优化必看!!android下编译ffmpeg
  10. 工(程师)欲善其事,必先利其(编译)器——《Andr