Search code examples
unity-game-enginetextunicode

Unity - Displaying Burmese (Zwagyi) text


We're currently developing a game in Unity (2019.4.28f1). This game is played internationally. We'd like to add support for languages other than common Latin written languages. Currently, we're trying to implement support for Burmese, but aren't making much progress.

Finding fonts to display Burmese isn't a big issue. As you can see in the image below, we manage to display all characters that are supposed to be displayed.

Correct display (but incorrect order)

However, the big problem here is that the displayed order of symbols isn't the same as what it's supposed to be (see image below for the desired result).

Correct order of characters

We've tried several fonts that use either Unicode or Zwagyi encoding, but none of them seem to display characters in the correct order. Currently, we're using a padauk font from here, which is supposedly Unicode encoded. Then, within Unity, we applied to following settings to that font:

Current Unity settings

So, if one of you knows more about this and can share some information with me, that would be much appreciated! Thanks.


Solution

  • We've already found a solution for this! Before setting the text of the text component convert the Unicode codes to Zwagyi and it'll display the text in the correct order!

    All the credits go to this guy who put in the effort to make a tool for these use cases!

    Of course, you still need a (Unicode) font that supports these (Burmese) symbols.

    Example:

    Text textComponent = GetComponent<Text>();
    textComponent.text = mmfont.Net.Converter.Uni2ZG(yourUnicodeText);