首先,请看文本渲染文章。
文本呈现是将字符串转换为用户可读格式的过程。
现在是2020年了,但是统一并不支持RTL复杂的脚本语言。所以我在寻找将文本渲染成最终结果的方法。显然,渲染文本要比编写更高的层次。让我举一个例子:
U+0633 =>س
U+0633 U+0633 =>سس(原始字符串)
您可以看到有两个相同的字符,但如果您键入他们的窗口,他们呈现不同的形状。实际呈现的字符是:
U+FEB3 U+FEB2 =>ﺳﺲ(呈现字符串)
正如您所看到的,这两个字符代码都与它们的类型不同(如果精确地看,它们实际上是不同的字符),但是您看到的结果是相同的,所以在中间有一个API可以正确地呈现文本。根据Microsoft 文本渲染文章,文本通常以原始格式存储,并在显示时呈现。
问题:在C# (.Net框架)中有一种简单的方法将原始字符串转换成呈现的字符串吗?
示例:是否有将"U+0633 U+0633“转换为"U+FEB3 U+FEB2”的函数?这可能就像"Uniscribe“或”DirectWrite“所做的那样,,我需要将我输入的内容转换为我所看到的!
P.S.:
我知道有一些联合资产能做到这一点。但是他们写了许多年来所有系统都可用的东西,而且它们并不是完整和健全的。我喜欢用操作系统渲染,它是完整的和健全的。
我想如果这么简单的话,Unity就会使用它。因此,如果没有直线,请简单地说,没有这样的事情。
谢谢!
发布于 2020-04-12 17:40:44
对于RTL语言,您可以使用RTL文本网格Pro。
通过这个插件,您可以在编辑器中显示您的波斯语、阿拉伯语或任何RTL语言,或者直接从脚本中传递一个变量。
发布于 2022-10-31 14:11:56
我为编辑器创建了一个免费的包。也许能帮上忙。您可以翻转文本RTL,然后在任何地方复制和粘贴它,或者可以使用函数SwitchRTL(“文本翻转”);从运行时脚本中,只要包含运行时脚本,就可以在自己的脚本中使用它。
链接到下面
https://assetstore.unity.com/packages/tools/utilities/right2left-232988
https://stackoverflow.com/questions/61169696
复制相似问题