在最新发布的Tuanjie 1.6.3中,TextMeshPro 首次实现了阿拉伯语的渲染支持,同时对泰语和希伯语的支持也均有提升。
为满足车机应用对阿拉伯语的需求,我们在Tuanjie 1.6.3 + TextMeshPro 3.0.9中引入Advanced Text Processing,通过接入 ICU 与 HarfBuzz 库,带来了更精准的字形连接与更自然的排版效果。
![]()
使用教程
首先,需要确保已经更新至 Tuanjie 1.6.3,且 TextMeshPro 已更新至 3.0.9 版本。
导入字形文件且自动生成 Asset,Windows >> TextMeshPro >> Font Asset Creator:
![]()
为了支持 Advance Text Processing,需要将字形文件 Asset的Atlas Population Mode 改为Dynamic,并勾选Multi Atlas Textures
![]()
开启Advance Text Processing开关,从而使用 ICU 和 harfbuzz。开启之后,如果勾选了下方的 Enable RTL Editor,则默认段落方向是 RLT,否则,认为段落方向是 LTR
![]()
最终渲染结果如下:
![]()
技术背景
逻辑顺序与视觉顺序
“
逻辑顺序是阅读者理解的顺序,而视觉顺序是字符展示在屏幕上的顺序。
阿拉伯语作为一种较为特殊的语言,“逻辑顺序”和“视觉顺序”是两个容易混淆的概念,尤其是在处理文本渲染、编程或者排版时:
阿拉伯语的书写/阅读方向:从右到左(Right-to-Left,简称 RTL)
数字和部分符号:通常还是从左到右(Left-to-Right,简称 LTR)
逻辑顺序(Logical Order)
逻辑顺序指文本在计算机存储或处理时的实际顺序,即字符的 Unicode 编码顺序。阿拉伯语是从右向左(RTL)书写的语言,但逻辑顺序可能与视觉呈现顺序不同。
特点:
数字和拉丁字母(如英文)在阿拉伯语文本中仍按从左向右(LTR)书写。
混合文本时,逻辑顺序需兼容双向文本(Bidirectional Text, BiDi)规则。
示例:
الطالب يقرأ الكتاب(学生正在读书)
逻辑存储顺序(Unicode码位顺序): 从第一个字符"ا"(右端)到最后一个字符"ب"(左端)。
但显示时会自动渲染为从右向左的视觉顺序。
视觉顺序(Visual Order)
视觉顺序是用户实际看到的字符排列顺序。阿拉伯语在屏幕上显示时,字符从右向左排列,但数字或嵌入的 LTR 文本会从左向右显示。
特点:
光标移动方向:在纯阿拉伯语文本中,光标从右向左移动;遇到数字或拉丁文字时,方向可能切换。
字符形状:阿拉伯字母的形态会因位置(词首、词中、词尾)而变化,进一步影响视觉呈现
示例:
السعر 25 دولار(价格是25美元)
阅读顺序:从右向左读"السعر",然后数字"25"从左向右,最后"دولار"从右向左。
逻辑存储顺序:
ا ل س ع ر→2 5→د و ل ا ر。
双向混合文本
当一段文本中既有阿拉伯语,又有英语的时候,且混合排列时,阅读规则就更为复杂。
例如下面的例子:
下面代表字符的显示顺序,大写代表阿拉伯文,小写代表英文。
首先假设段落方向是 RTL
abcdABCDefghEFGH我们根据语言方向可以拆解为四段:abcd(LTR)、ABCD (RTL) 、 efgh(LTR)、EFGH(RTL)
由于我们的段落方向是 RTL,所以我们应该先阅读最右边的段,而它的语言方向是RTL,于是我们的阅读顺序为:
HGFE接下来,我们将读其左边的段 efgh(LTR),由于语言方向是LTR,我们应该从段的最左边开始阅读,
HGFEefgh以此类推,我们整个段落的逻辑顺序为:
HGFEefghDCBAabcd而如果是同样的文字,段落方向改为 LTR,对段的划分是一致的,唯一的区别是我们需要从最左边的段开始阅读:
abcdABCDefghEFGH即,逻辑顺序如下:
abcdDCBAefghHGFE团结引擎车机版在充分考虑阿拉伯语的逻辑顺序与阅读顺序的基础上,对 TextMeshPro 进行了专项增强,确保从输入到渲染的阿拉伯语文本,都能实现正确的显示效果与准确的语义表达。
Unity 官方微信
第一时间了解Unity引擎动向,学习进阶开发技能
每一个“点赞”、“在看”,都是我们前进的动力

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.