RTLTMPro Alternative: Arabic, Persian and Hebrew Without Rewriting Text

Last reviewed

Short answer

RTLTMPro is a widely used way to show Arabic, Persian and Hebrew with TextMesh Pro: a free, maintained plugin that rewrites the string into presentation forms and reorders it before TextMesh Pro draws it. It makes most lines readable within TextMesh Pro's limits.

UniText removes the need for a rewrite: it shapes text with HarfBuzz from the font's own tables and runs the full Unicode Bidirectional Algorithm, so mixed-direction lines, diacritics, Urdu Nastaliq, input and copying work on the real text.

How RTLTMPro works

RTLTMPro (MIT, with a Unity 6 release in April 2026) provides a component derived from TextMeshProUGUI. Before TextMesh Pro sees the text it removes diacritics, replaces each letter with its isolated, initial, medial or final presentation-form character according to its own joining rules, restores the diacritics, reorders the line while keeping Latin text, numbers and tags in order, mirrors a fixed set of brackets, and turns on TextMesh Pro's right-to-left mode.

That design has costs that come from working around TextMesh Pro rather than inside a text engine:

  • The font atlas must contain the presentation-form characters, which many modern Arabic fonts do not include because they rely on OpenType shaping.
  • Joining follows the plugin's tables instead of the font's, so fonts with contextual alternates, such as Nastaliq for Urdu, cannot render as designed.
  • Mixed lines are reordered by the plugin's rules rather than the Unicode Bidirectional Algorithm; its issue tracker has open reports about punctuation in mixed text, spacing around rich-text tags and reversed Hebrew style tags.
  • The stored string is the rewritten one. Input fields, caret placement, selection and reading the text back all have to account for that, and its own README warns about multiline English text with Force Fix enabled.

RTLTMPro and UniText side by side

RTLTMProUniText
ApproachRewrites the string, then TextMesh Pro draws itShapes and lays out the text itself
Letter formsPlugin joining tables, presentation-form glyphsThe font’s OpenType rules via HarfBuzz
Mixed directionsPlugin reordering rulesFull Unicode Bidirectional Algorithm per paragraph
FontsMust include presentation formsAny font that supports the script
Other scriptsArabic, Persian, HebrewEvery Unicode script, including Indic and Thai
TypingRewritten string under the caretLive shaping with bidirectional caret and selection
PriceFree, MITFree MIT 1.0; current versions licensed

Questions

Is RTLTMPro a bad choice?

No. For a TextMesh Pro project with mostly simple Arabic, Persian or Hebrew lines it is free, maintained and quick to adopt. Its limits show up with mixed-direction text, demanding fonts, input fields and other complex scripts.

What changes when moving to UniText?

Replace RTLTMPro components with UniText components and remove the presentation-form ranges from your font setup. The text strings stay in their normal logical order, so translations need no processing.

Check it in your project

Run the browser demo, follow the setup guide, or compare the free version with the licenses.

Related problems