Во-первых, пожалуйста, посмотрите Рендеринг текста статья.
Рендеринг текста - это процесс преобразования строки в формат, который читается пользователем.
Сейчас 2020, и все же Unity не поддерживает сложные языки сценариев RTL. поэтому я ищу визуализации текста в конечный результат. очевидно, рендеринг текста выполняется на более высоких уровнях, чем написание. позвольте мне показать пример:
U + 0633 => س
U + 0633 U + 0633 => سس (необработанная строка)
вы можете видеть, что есть два одинаковых символа, но если вы введете их в windows, они будут отображаться в разных формах. фактические визуализированные символы:
U + FEB3 U + FEB2 => ﺳﺲ (отображаемая строка)
, поскольку вы можете видеть, что эти два кода символов оба отличаются от того, что они были напечатаны (если вы посмотрите точно, они на самом деле разные символы), но результаты, которые вы видите, одинаковы, так что в середине есть API, который правильно отображает текст. согласно статье Microsoft Text Rendering , обычно текст сохраняется в необработанном формате и отображается при отображении.
Вопрос: существует ли простой способ в C# ( . Net Framework) для преобразования необработанной строки в отображаемую строку?
пример: есть ли функция для преобразования "U + 0633 U + 0633" в "U + FEB3 U + FEB2"? это, вероятно, похоже на то, что делают "Uniscribe" или DirectWrite ", Мне нужно преобразовать то, что я печатаю, в то, что я вижу !!!
PS:
1 - Я знаю некоторые ресурсы Unity, которые делают это, но они написали то, что доступно во всех системах в течение многих лет, и они не являются полными и исправными. Мне нравится делать это с помощью средства визуализации ОС, которое является полным и надежным.
2- Я полагаю, что если это было так просто, разработчики Unity использовали бы его, поэтому, если нет прямого пути, просто скажите, что такого нет.
Спасибо!